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

Important

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

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

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

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

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

    Azure SQL Database とオンプレミスの SQL Server

    EXEC sys.sp_cdc_enable_db
    

    Amazon RDS for SQL Server

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

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

CDC リテンション期間を設定する

リテンション期間を、ゲートウェイがダウンする可能性が高い最大時間 (分単位) に設定します。 この時間が経過すると、ゲートウェイを再開するために完全な更新が必要になります。

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_changes1 の値のみをサポートします。
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 を付与する

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

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

VIEW SERVER STATE の付与 (オンプレミスと RDS)

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

GRANT VIEW SERVER STATE to <database-user>

次のステップ

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