次の方法で共有


Azure SQL Database からの Fabric ミラー化データベースのトラブルシューティング

この記事では、Azure SQL Database をミラーリングするためのトラブルシューティング手順について説明します。

Fabric SQL データベース用に自動的に構成されたミラーリングのトラブルシューティングについては、「Fabric SQL データベース からのミラーリングのトラブルシューティング」を参照してください。

Microsoft 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. Fabric ポータルで、"..." を選択します。ミラー化されたデータベース項目の省略記号オプション。
    2. [ アクセス許可の管理] オプションを選択します。
    3. マネージド ID 名が読み取り、書き込みアクセス許可で表示されていることを確認します。
    4. 表示される AppId が、Azure SQL Database 論理サーバーのマネージド ID の ID と一致していることを確認します。
  5. トラブルシューティングが必要な場合は、サポートにお問い合わせください

マネージド ID

Azure SQL 論理サーバーのシステム割り当てマネージド ID (SAMI) またはユーザー割り当てマネージド ID (UAMI) が有効になっている必要があり、そのうちの 1 つがプライマリ ID である必要があります。

ユーザー割り当てマネージド ID (UAMI) のサポートは現在プレビュー段階です。

次の Transact-SQL クエリを使用して、正しいプライマリ ID を確認します。

SELECT * FROM sys.dm_server_managed_identities;

詳細については、「 Azure SQL Database サーバーの作成」を参照してください。

マネージド ID のアクセス許可

Azure SQL 論理サーバーのシステム割り当てマネージド ID (SAMI) とユーザー割り当てマネージド ID (UAMI) の両方に、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 ログインを使用して作成されたデータベース ユーザーには、ロールとアクセス許可が付与されると遅延が発生する場合があります。 これにより、Fabric ポータルで次のようなエラーが発生する可能性があります。

"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 からのファブリック ミラー化されたデータベースの自動再シード」を参照してください。

再シード処理が自動的に開始されました

Azure SQL Database からのファブリック ミラーリングは、個々のテーブル レベルまたはデータベース全体で、特定の条件下で自動的に再シードできます。 詳細については、Azure SQL Database のファブリックミラー化されたデータベースに対する自動再シードについて学んでください。