次の方法で共有


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

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

Fabric SQL データベースで自動的に構成されるミラーリングのトラブルシューティングについては、「Fabric SQL データベースからのミラーリングのトラブルシューティング (プレビュー)」をご覧ください。

Microsoft Fabric の容量またはワークスペースの変更

詳細については、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 データベースの現在の構成を確認します。 正しく有効になっていることを確認します。

    EXEC sp_help_change_feed;
    

    ここで探すキー列は table_namestate です。 4 以外の値は、潜在的な問題を示します。

  4. レプリケーションがまだ機能していない場合は、正しい SAMI オブジェクトにアクセス許可があることを確認します。

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

マネージド ID

Azure SQL 論理サーバーのシステム割り当てマネージド ID (SAMI) を有効にし、プライマリ 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;

ユーザー割り当てマネージド ID (UAMI) はサポートされていません。 UAMI を追加すると、それがプライマリ ID になり、SAMI をプライマリに置き換えます。 これにより、レプリケーションが失敗します。 解決するには、以下を行います。

  • すべての UAMI を削除します。 SAMI が有効になっていることを確認します。

SAMI のアクセス許可

Azure SQL 論理サーバーのシステム割り当てマネージド ID (SAMI) には、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 データベース論理サーバーの名前を入力します。 読み取り書き込みのアクセス許可を指定します。

Microsoft Entra ログインを使用した古いアクセス許可からのエラー

Microsoft Entra ID 認証を使用する前に、 Microsoft Entra サーバー プリンシパルの制限事項を確認してください。

Microsoft Entra ログインを使用して作成されたデータベース ユーザーには、ロールとアクセス許可が付与されると遅延が発生する場合があります。 その結果、Fabric ポータルで次のようなエラーが発生する可能性があります。"次のエラーが原因で、データベースを Fabric にミラーリングできません:SQL Server マネージド ID を取得できません。 データベース操作が失敗し、次のエラーが発生しました: 「サーバー 'server' のオブジェクトに対する 'VIEW SERVER SECURITY STATE' の権限が拒否されました。データベース 'master'。」 ユーザーには、このアクションを実行するアクセス許可がありません。' VIEW SERVER SECURITY STATE 権限がオブジェクト 'server'、データベース 'master' で拒否されました。 ユーザーにはこの操作を実行する権限がありません。 SqlErrorNumber=300,Class=14,State=1, アクティビティ ID: ..."

現在のプレビュー期間中は、これらの問題に対処するために次のコマンドを使用する必要があります。

  • ユーザー データベースからユーザーを削除 します。
  • DBCC FREESYSTEMCACHE('TokenAndPermUserStore')を実行して、データベースのセキュリティ キャッシュをクリアします。
  • DBCC FLUSHAUTHCACHEを実行して、フェデレーション認証コンテキスト キャッシュをクリアします。
  • ユーザー データベースで、ログインに基づいて ユーザーを再作成 します。