メインコンテンツまでスキップ

Microsoft SQL Server の組み込み CDC を有効にする

重要

このページには古いコンテンツが含まれています。Databricks代わりにユーティリティ オブジェクト スクリプトを使用してSQL Server取り込みを準備するのステップに従うことをお勧めします。

Microsoft SQL Serverで組み込み変更データキャプチャ ( CDC ) を有効にする方法を学習します。 SQL Server コネクタを使用するには、変更追跡または CDC のいずれかを有効にする必要があります。Databricks では、ソース データベースの負荷を最小限に抑えるために、主キーを持つすべてのテーブルに対して変更追跡を使用することをお勧めします。変更追跡と CDC の両方が有効になっている場合、コネクタは変更追跡を使用します。どのオプションを選択するかについては、 「変更追跡と変更データ キャプチャ」を参照してください。

ソースデータベースの組み込みCDC有効にする

  1. CDC を有効にするデータベースにログインします。

  2. データベース コンテキストで次の T-SQL コマンドを実行します。

    Azure SQL データベースとオンプレミスの SQL Server

    SQL
    EXEC sys.sp_cdc_enable_db

    Amazon RDS for SQL Server

    SQL
    EXEC msdb.dbo.rds_cdc_enable_db '<database-name>'

詳細については、 SQL Serverドキュメントの「データベースの変更データ キャプチャを有効にする」を参照してください。

CDC保持期間を設定する

ゲートウェイがダウンする可能性のある最大時間 (分単位) に保持期間を設定します。この時間が経過すると、ゲートウェイを再開するには完全な更新が必要になります。

SQL
EXEC sys.sp_cdc_change_job @job_type = N'cleanup', @retention = 20160;

ソーステーブルで組み込みCDC有効にする

ソース テーブルで CDC を有効にするには、Azure SQL で次のストアド プロシージャを実行します。source_schemasource_namerole_nameの値を置き換えます。テーブルに主キーがある場合、 @support_net_changes 1の値のみをサポートします。

  • source_schemasource_namerole_nameの値を置き換えます。
  • テーブルに主キーがある場合、 @support_net_changes 1の値のみをサポートします。
SQL
EXEC sys.sp_cdc_enable_table
@source_schema = N'MySchema',
@source_name = N'MyTable',
@role_name = NULL,
@supports_net_changes = 1

詳細については、 SQL Serverドキュメントの「テーブルの変更データ キャプチャを有効にする」を参照してください。

CDCスキーマに対する権限SELECT

ソース セットアップで説明されている権限に加えて、データベース ユーザーにはスキーマcdcに対するSELECT権限が必要です。このスキーマには、CDC が有効になったときに作成される変更テーブルが含まれています。次の T-SQL コマンドを実行します。

SQL
GRANT SELECT ON SCHEMA::cdc to <database-user>;

付与VIEW SERVER STATE (オンプレミスおよび RDS)

オンプレミスおよび RDS インスタンスの場合のみ、SQL Server エージェントのステータスを確認するために使用されるsys.dm_server_servicesクエリするにはVIEW SERVER STATE権限が必要です。次の T-SQL コマンドを実行します。

SQL
GRANT VIEW SERVER STATE to <database-user>

次のステップ

DDLキャプチャとスキーマ進化の設定