다음을 통해 공유


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에서 보호하기 위해 영구 리소스 오류에서 미러링을 사용하지 않도록 설정할 수 있습니다.
"사용자가 Fabric 외부의 앱을 사용하여 OneLake에 저장된 데이터에 액세스할 수 있습니다." 설정이 비활성화됨 "복제자 - 테이블이 복제 상태에 도달할 수 없음" 테넌트 설정을 사용하도록 사용자가 Fabric외부의 앱을 사용하여 OneLake에 저장된 데이터에 액세스할 수 있습니다.

문제 해결을 위한 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. 복제가 여전히 작동하지 않는 경우 올바른 SAMI 개체에 사용 권한이 있는지 확인합니다.

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

관리형 아이덴티티

Azure SQL 논리 서버의 SAMI(시스템 할당 관리 ID)를 사용하도록 설정해야 하며 기본 ID여야 합니다. 자세한 내용은 Azure SQL Database 서버 만들기를 참조하세요. Azure Portal의 보안에 있는 리소스 메뉴의 ID 페이지에서 SAMI를 사용하도록 설정합니다.

사용 후 SAMI 설정 상태가 꺼져 있거나 처음에 사용하도록 설정된 다음 사용하지 않도록 설정한 다음 다시 사용하도록 설정하면 Azure SQL Database에서 Fabric OneLake로의 미러링이 실패합니다.

SAMI가 기본 ID여야 합니다. 다음 T-SQL 스크립트를 사용하여 SAMI가 기본 ID인지 확인합니다. SELECT * FROM sys.dm_server_managed_identities;

UAMI(사용자 할당 관리 ID)는 지원되지 않습니다. UAMI를 추가하면 기본 ID가 되어 SAMI를 기본 ID로 대체합니다. 이로 인해 복제가 실패합니다. 해결하려면:

  • 모든 UI를 제거합니다. SAMI가 사용하도록 설정되어 있는지 확인합니다.

SAMI 권한

Azure SQL 논리 서버의 SAMI(시스템 할당 관리 ID)에는 Microsoft Fabric의 미러된 데이터베이스 항목에 대한 읽기쓰기 권한이 있어야 합니다. 패브릭 포털에서 미러된 데이터베이스를 만들면 사용 권한이 자동으로 부여됩니다. 설치 중에 오류가 Unable to grant required permission to the source server. User does not have permission to reshare 발생하는 경우 충분한 권한이 있는 작업 영역에 구성원 또는 관리자 역할이 있는지 확인합니다. API를 사용하여 미러된 데이터베이스를 만드는 경우 명시적으로 권한을 부여해야 합니다.

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

Azure SQL Database SAMI 사용 권한을 제거하거나 사용 권한이 올바르게 설정되지 않은 경우 다음 단계를 사용합니다.

  1. 미러된 데이터베이스 항목에서 줄임표 옵션을 선택하여 ... SAMI를 사용자로 추가합니다.
  2. 사용 권한 관리 옵션을 선택합니다.
  3. Azure SQL Database 논리 서버 이름의 이름을 입력합니다. 읽기쓰기 권한을 제공합니다.

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

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

Microsoft Entra 로그인을 사용하여 만든 데이터베이스 사용자는 역할 및 사용 권한이 부여될 때 지연이 발생할 수 있습니다. 이로 인해 패브릭 포털에서 다음과 같은 오류가 발생할 수 있습니다. "아래 오류로 인해 데이터베이스를 Fabric에 미러링할 수 없습니다. SQL Server 관리 ID를 검색할 수 없습니다. 'VIEW SERVER SECURITY STATE 권한이 개체 'server', 데이터베이스 'master'에 대해 거부되었습니다. 사용자에게 이 작업을 수행할 수 있는 권한이 없습니다.' 개체 'server', 데이터베이스 'master'에서 VIEW SERVER SECURITY STATE 권한이 거부되었습니다. 사용자에게 이 동작을 수행할 권한이 없습니다. SqlErrorNumber=300,Class=14,State=1, 작업 ID: ..."

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

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