Share via


トラブルシューティング: Azure Synapse Link for SQL の初期スナップショットに関する問題

この記事は、Azure Synapse Link for Azure SQL Database および SQL Server の初期スナップショットに関する問題のトラブルシューティングするためのガイドです。

症状

ユーザーは、次の解決手順に従って、次のケースを調査できます。

  • リンク接続スナップショットの状態がスタックしているかどうかを判断する。
  • リンク接続を開始した後に、スナップショット関連のエラーが発生するかどうかを判断する。
  • 個々のテーブルの初期スナップショットの進行状況を把握する。

解像度

SQL Server Management Studio または Azure Data Studio を使って、Azure Synapse Link で有効にするソース データベースに接続します。

ソース データベースで次の T-SQL コマンドを実行し、changefeed.change_feed_tables から変更フィードが有効なすべてのテーブルとそのスナップショット関連の列を一覧表示します。 クエリの結果で、snapshot_phase 列を確認します。

SELECT table_group_id, table_id, state, version, snapshot_phase, 
 snapshot_current_phase_time, snapshot_retry_count, snapshot_start_time,
 snapshot_end_time, snapshot_row_count 
FROM changefeed.change_feed_tables;

出力例:

changefeed.change_feed_tables システム テーブルのテーブルと列の結果セット例を示す SQL Server Management Studio のスクリーンショット。

  • 目的のテーブルの snapshot_phase 列の値が 6 (EMIT_SNAPSHOT_ENDENTRY) である場合、そのテーブルでは既にスナップショットが完了しており、それ以上の調査は必要ないことを意味します。
  • スナップショットのいずれかのフェーズが完了するのに時間がかかる可能性があります。 フェーズ 5 (EXPORT_DATA_FILE) は時間のかかる可能性がある手順です。 テーブル サイズが大きい場合、EXPORT_DATA_FILE フェーズが完了するまでに時間がかかることが予想されます。 スナップショット フェーズの詳細については、「changefeed.change_feed_tables」を参照してください。

特定のテーブルに対するスナップショットが完了していない場合、changefeed.change_feed_tables の出力に基づいて検討すべき 2 つのケースの可能性があります。

  • Snapshot_phase< 6 かつ snapshot_retry_count = 0 の場合、スナップショット操作はエラーなしで進行中です。 この場合、アクションは必要ありません。スナップショットが完了するまで待ちます。
  • Snapshot_phase< 6 かつ snapshot_retry_count> 0 の場合、スナップショット操作は失敗しており、再試行されています。 手順 2 に進んでください。 たとえば、次の図のような場合です。

changefeed.change_feed_tables システム テーブルのテーブルと列の結果セット例を示す SQL Server Management Studio のスクリーンショット。再試行中と表示されています。

手順 2: スナップショットの再試行

エラーによってスナップショットが強制的に再試行される場合、詳細については、「sys.dm_change_feed_errors」動的管理ビューを参照してください。 ソース データベースで次の T-SQL コマンドを実行します。

SELECT * FROM sys.dm_change_feed_errors;

たとえば、次のように入力します。

調査すべきスナップショット エラーの可能性を含む、sys.dm_change_feed_errors 動的管理ビューの結果のスクリーンショット。

  1. source_task = 5 のときにスナップショット コンポーネントから何らかのエラーが発生した場合、エラーの具体的な軽減策の詳細については、「SQL 用 Azure Synapse Link に関する既知の制限事項と問題」を参照してください。

  2. 既知の制限事項の記事でエラーが見つからない場合は、次の手順を実行して Azure サポート リクエストを送信してください。

    1. [問題の種類] で、 [技術] を選択します。
    2. ソース データベースの目的のサブスクリプションを指定します。 [次へ] を選択します。
    3. [サービスの種類] で、 [SQL データベース] を選択します。
    4. [リソース] で、初期スナップショットが失敗しているソース データベースを選びます。
    5. [概要]changefeed.change_feed_errors のエラー番号を入力します。
    6. [問題の種類] で、[Data Sync, Replication, CDC and Change Tracking] (データ同期、レプリケーション、CDC、変更追跡) を選びます。
    7. [問題のサブタイプ] で、[トランザクション レプリケーション] を選びます。

    新しいサポート リクエストが準備された Azure portal のスクリーンショット。

次のステップ