Azure Synapse Link for SQL Server と Azure SQL Database の管理

適用対象: SQL Server 2022 (16.x) Azure SQL Database

この記事では、T-SQL を使用した SQL 変更フィードの Azure Synapse Link の監視と管理について詳しく説明します。

Azure SQL Database の Azure Synapse Link は、ランディング ゾーンのプロビジョニングを含め完全に管理されており、この記事で説明されているように同様の変更検出プロセスを使用します。 詳細については、「Synapse Link for Azure SQL Database」を参照してください。

SQL Server の場合、ランディング ゾーンはカスタマー マネージドで表示可能ですが、ランディング ゾーン内のファイルの使用や変更は推奨もサポートもされていません。

現時点では、これらのプロシージャを実行できるのは、SQL Server または db_owner データベース ロールの sysadmin サーバー ロールのメンバーのみです。

SQL Server または Azure SQL Database では、各テーブル グループに固有のメタデータを保持します。

注意

Azure Synapse Link for SQL を有効にすると、ソース データベースで changefeed データベース ユーザー、changefeed スキーマ、およびその changefeed スキーマ内に複数のテーブルが作成されます。 これらのオブジェクトはいずれも変更しないでください。これらはシステムで管理されます。

次のシステム オブジェクトを使用すると、ソース データベースから Azure Synapse Link for SQL 機能の状態を照会できます。

構成の表示

リンクの現在の構成を確認するには、sys.sp_help_change_feed システム ストアド プロシージャを実行します。

EXECUTE sys.sp_help_change_feed

変更フィードのエラーを確認する

Azure Synapse Link 変更フィードのエラーを確認するには、動的管理ビュー sys.dm_change_feed_errors を使用します。 この DMV には、最新の 32 セッションのエラーが表示されます。 1 つのセッションに複数のエラーが含まれる場合があります。たとえば、ランディング ゾーン エラーに対する再試行などです。 この DMV には、スナップショットおよび増分変更発行プロセス中に発生したエラーも表示されます。

SELECT * FROM sys.dm_change_feed_errors;

現在のアクティビティを表示する

現在のアクティビティを表示するには、動的管理ビュー sys.dm_change_feed_log_scan_sessions を使用して、SQL 変更フィードの Azure Synapse Link のアクティビティを返します。

SELECT * FROM sys.dm_change_feed_log_scan_sessions;

変更フィードの有効化と変更フィード オブジェクトの作成

システム ストアド プロシージャ sys.sp_change_feed_enable_tablesys.sp_change_feed_enable_dbsys.sp_change_feed_create_table_group は、文書化されておらず、内部でのみ使用されます。 Azure portal で Synapse Studio を常に使用して、SQL Server 2022 (16.x) および Azure SQL Database の Azure Synapse Link を作成および構成します。 Azure Synapse Studio が削除された場合、またはアクセスできない場合は、Azure Synapse Link を削除するために、次の削除および無効化ストアド プロシージャが提供されます。

データベースの変更フィードを無効にする

データベース レベルで変更フィードを無効にし、その後、関連付けられているすべてのテーブルのメタデータを無効にするには、sys.sp_change_feed_disable_db システム ストアド プロシージャを使用します。

アクティブなテーブル グループで変更フィードを無効にすると、現在の操作が完了するのを待たずに、すべての接続とスケジューラが直ちに、または強制的に停止されます。 データベースに対して新しい変更フィード テーブル グループを作成することはできなくなり、テーブル グループを記述する既存のメタデータはすべて削除されます。 変更フィードを再度有効にすると、すべてのテーブル グループがクリーンに初期化され、すべてのデータが再シードされます。

EXECUTE sys.sp_change_feed_disable_db 
GO 

変更フィード テーブル グループの削除

Azure portal で Azure Synapse Studio を使用して、Azure Synapse リンクを構成および管理することをお勧めします。

テーブル グループの変更フィード メタデータを削除するには、sys.sp_change_feed_drop_table_group システム ストアド プロシージャを使用します。

テーブル グループの変更フィードが SQL Server 側または Azure SQL Database 側で削除されると、このテーブル グループに関連付けられている個々の変更フィード テーブルのすべてのレプリケーション アクティビティが停止します。 関連付けられているすべてのメタデータも削除されます。

EXECUTE sys.sp_change_feed_drop_table_group
      @table_group_id uniqueidentifier 
GO

変更フィード テーブルの削除

Azure portal で Azure Synapse Studio を使用して、Azure Synapse リンクを構成および管理することをお勧めします。

変更フィード テーブル グループから変更フィード テーブルを削除するには、sys.sp_change_feed_disable_table システム ストアド プロシージャを使用します。

sys.sp_change_feed_disable_table が呼び出されると、このテーブルの変更の発行はすぐに停止されます。 スキャンされたが発行されていない変更は無視されます。 Azure Synapse に発行および同期された最後の変更は保証されません。 ソースとターゲット間の同期を一定の時間まで保証されるようにするには、ターゲットの "最後のトランザクション コミット時刻" を確認してから、このプロシージャを呼び出します。

EXECUTE sys.sp_change_feed_disable_table
    @table_group_id uniqueidentifier,
    @table_id uniqueidentifier
GO

関連項目

次の手順