다음을 통해 공유


Azure SQL Database에서 패브릭 미러된 데이터베이스 문제 해결

이 문서에서는 Azure SQL Database 미러링 문제 해결 단계를 설명합니다.

Fabric SQL 데이터베이스에 대해 자동으로 구성된 미러링 문제를 해결하려면 Fabric SQL 데이터베이스의 미러링 문제를 참조하세요.

Fabric 용량 또는 작업 영역 변경

패브릭 용량 또는 작업 영역의 변경 내용은 미러링에 영향을 줄 수 있습니다. 자세한 내용은 패브릭 용량 변경 사항이 미러링에 미치는 영향을 검토하세요.

Azure SQL Database 문제 해결

원인 결과 권장 솔루션
작업 영역이 삭제됨 미러링이 자동으로 중지되고 Azure SQL Database에서 변경 피드를 사용하지 않도록 설정 Azure SQL Database에서 미러링이 여전히 활성 상태인 경우 Azure SQL Database exec sp_change_feed_disable_db;에서 다음 저장 프로시저를 실행합니다.
영구 오류 영향을 받는 데이터베이스에 대해 미러링을 사용할 수 없습니다. 컴퓨팅 리소스가 영향을 받지 않도록 하고 원본 Azure SQL Database를 보호하기 위해 영구 오류 시 미러링이 비활성화됩니다. 미러링을 위해 데이터베이스를 다시 사용하도록 설정하기 전에 sys.dm_change_feed_errors 검토하고 기본 오류를 해결합니다.
"사용자가 Fabric 외부의 앱을 사용하여 OneLake에 저장된 데이터에 액세스할 수 있습니다." 설정이 비활성화됨 "복제자 - 테이블이 복제 상태에 도달할 수 없음" 테넌트 설정을 사용하도록 사용자가 Fabric외부의 앱을 사용하여 OneLake에 저장된 데이터에 액세스할 수 있습니다.

추가 문제 해결 시나리오는 패브릭 미러된 데이터베이스 문제 해결 - Microsoft Fabric을 참조하세요.

문제 해결을 위한 T-SQL 쿼리

미러링 문제가 발생하는 경우 DMV(동적 관리 뷰) 및 저장 프로시저를 사용하여 다음 데이터베이스 수준 검사를 수행하여 구성의 유효성을 검사합니다.

  1. 다음 쿼리를 실행하여 변경 내용이 제대로 작동하는지 확인합니다.

    SELECT * FROM sys.dm_change_feed_log_scan_sessions;
    
  2. sys.dm_change_feed_log_scan_sessions DMV에 증분 변경 처리 진행률이 표시되지 않는 경우 다음 T-SQL 쿼리를 실행하여 보고된 문제가 있는지 확인합니다.

    SELECT * FROM sys.dm_change_feed_errors;
    
  3. 보고된 문제가 없는 경우 다음 저장 프로시저를 실행하여 미러된 Azure SQL Database의 현재 구성을 검토합니다. 제대로 사용하도록 설정되었는지 확인합니다.

    EXEC sp_help_change_feed;
    

    여기에서 찾을 키 열은 table_namestate입니다. 4 외에 모든 값은 잠재적인 문제를 나타냅니다.

  4. 복제가 여전히 작동하지 않는 경우 올바른 관리 ID 개체에 권한이 있는지 확인합니다.

    1. 패브릭 포털에서 "..."를 선택합니다. 미러된 데이터베이스 항목의 줄임표 옵션입니다.
    2. 사용 권한 관리 옵션을 선택합니다.
    3. 관리 ID 이름이 읽기, 쓰기 권한으로 표시되는지 확인합니다.
    4. 표시되는 AppId가 Azure SQL Database 논리 서버의 관리 ID ID와 일치하는지 확인합니다.
  5. 문제 해결이 필요한 경우 고객 지원에 문의하세요.

관리형 아이덴티티

Azure SQL 논리 서버의 SAMI(시스템 할당 관리 ID) 또는 UAMI(사용자 할당 관리 ID)를 사용하도록 설정해야 하며, 그 중 하나가 기본 ID여야 합니다.

비고

UAMI(사용자 할당 관리 ID)에 대한 지원은 현재 미리 보기로 제공됩니다.

다음 Transact-SQL 쿼리를 사용하여 올바른 기본 ID를 확인합니다.

SELECT * FROM sys.dm_server_managed_identities;

자세한 내용은 Azure SQL Database 서버 만들기를 참조하세요.

관리 ID에 대한 권한

Azure SQL 논리 서버에 대한 시스템 할당 관리 ID(SAMI)와 UAMI(사용자 할당 관리 ID)는 모두 Microsoft Fabric의 미러된 데이터베이스 항목에 대한 읽기쓰기 권한이 있어야 합니다.

패브릭 포털에서 미러된 데이터베이스를 만들면 사용 권한이 자동으로 부여됩니다. 설치 중에 오류가 Unable to grant required permission to the source server. User does not have permission to reshare 발생하는 경우 충분한 권한이 있는 작업 영역에 구성원 또는 관리자 역할이 있는지 확인합니다. API 또는 CI/CD를 사용하여 미러된 데이터베이스를 만드는 경우 명시적으로 권한을 부여해야 합니다.

패브릭 미러된 데이터베이스 항목에 대한 SAMI 및/또는 UAMI 읽기쓰기 권한을 제거하지 마세요. 실수로 사용 권한을 제거하면 Azure SQL Database 미러링이 예상대로 작동하지 않습니다. 원본 데이터베이스에서 새 데이터를 미러링할 수 없습니다.

Azure SQL Database SAMI 및/또는 UAMI 권한을 제거하거나 사용 권한이 올바르게 설정되지 않은 경우 자습서 섹션에 설명된 단계를 참조하여 설정합니다.

Microsoft Entra 로그인으로 인한 부실 권한 오류

Microsoft Entra ID 인증을 사용하기 전에 Microsoft Entra 서버 보안 주체의 제한 사항을 검토합니다.

Microsoft Entra 로그인을 사용하여 만든 데이터베이스 사용자는 역할 및 사용 권한이 부여될 때 지연이 발생할 수 있습니다. 이로 인해 패브릭 포털에서 다음과 같은 오류가 발생할 수 있습니다.

"The database cannot be mirrored to Fabric due to below error: Unable to retrieve SQL Server managed identities. A database operation failed with the following error: 'VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action.' VIEW SERVER SECURITY STATE permission was denied on object 'server', database 'master'. The user does not have permission to perform this action. SqlErrorNumber=300,Class=14,State=1, Activity ID: ..."

현재 미리 보기 중에는 이러한 문제를 해결하기 위해 다음 명령을 사용해야 합니다.

  • 사용자 데이터베이스에서 사용자를 삭제합니다.
  • 데이터베이스에서 보안 캐시를 지우려면 실행 DBCC FREESYSTEMCACHE('TokenAndPermUserStore') 합니다.
  • 페더레이션 인증 컨텍스트 캐시를 지우려면 실행 DBCC FLUSHAUTHCACHE 합니다.
  • 사용자 데이터베이스에서 로그인 에 따라 사용자를 다시 만듭니 다.

트랜잭션 로그 사용량

미러링을 사용하도록 설정된 데이터베이스에 대한 트랜잭션 로그 사용량은 계속 증가하고 로그 잘림을 유지할 수 있습니다. 트랜잭션 로그 크기가 정의된 최대 한도에 도달하면 데이터베이스에 대한 쓰기가 실패합니다. 이를 방지하기 위해, 사용된 로그 공간이 구성된 총 로그 공간의 임계값을 초과하면 미러링이 전체 데이터베이스의 자동 재생성을 유발합니다. 이를 진단하고 자동 다시 시딩에 대해 알아보려면 Azure SQL Database의 Fabric 미러된 데이터베이스에 대한 자동 다시 시딩을 참조하세요.

다시 시딩이 자동으로 시작됨

Azure SQL Database의 패브릭 미러링이 특정 조건, 개별 테이블 수준 또는 전체 데이터베이스에 대해 자동으로 다시 설정할 수 있습니다. 자세한 정보를 얻으려면 Azure SQL Database에서 Fabric 미러된 데이터베이스의 자동 재시드를 참조하세요.