次の方法で共有


sys.sp_cdc_add_job (Transact-SQL)

現在のデータベースに、変更データ キャプチャ機能のクリーンアップ ジョブまたはキャプチャ ジョブを作成します。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)

トピック リンク アイコン Transact-SQL 構文表記規則

構文

sys.sp_cdc_add_job [ @job_type = ] 'job_type'
    [ , [ @start_job = ] start_job ] 
    [ , [ @maxtrans = ] max_trans ] 
    [ , [ @maxscans = ] max_scans ] 
    [ , [ @continuous = ] continuous ] 
    [ , [ @pollinginterval = ] polling_interval ] 
    [ , [ @retention ] = retention ] 
    [ , [ @threshold ] = 'delete_threshold' ]

引数

  • [ @job_type= ] 'job_type'
    追加するジョブの種類を指定します。 job_type のデータ型は nvarchar(20) で、NULL 値は許可されません。 有効な入力値は 'capture''cleanup' です。

  • [ @start_job= ] start_job
    ジョブの追加後、そのジョブを直ちに開始するかどうかを指定するフラグです。 start_job のデータ型は bit で、既定値は 1 です。

  • [ @maxtrans ] = max_trans
    各スキャン サイクルで処理する最大トランザクション数を指定します。 max_trans のデータ型は int で、既定値は 500 です。 指定する場合、値は正の整数にする必要があります。

    max_trans はキャプチャ ジョブでのみ有効です。

  • [ @maxscans ] **=**max_scans
    ログからすべての行を抽出するために実行する最大スキャン サイクル数を指定します。 max_scans のデータ型は int で、既定値は 10 です。

    max_scan はキャプチャ ジョブでのみ有効です。

  • [ @continuous ] **=**continuous
    キャプチャ ジョブを連続的に実行するか (1)、1 回だけ実行するか (0) を指定します。 continuous のデータ型は bit で、既定値は 1 です。

    continuous に 1 を指定した場合、sp_cdc_scan ジョブによってログがスキャンされ、最大 (max_trans * max_scans) のトランザクションが処理されます。 その後、polling_interval に指定された秒数待機してから、次のログ スキャンが開始されます。

    continuous に 0 を指定した場合、sp_cdc_scan ジョブは、最大 max_scans 回のログ スキャンを実行し、各スキャンあたり最大 max_trans 件のトランザクションを処理した後に終了します。

    continuous はキャプチャ ジョブでのみ有効です。

  • [ @pollinginterval ] **=**polling_interval
    ログ スキャン サイクルの間隔を秒数で指定します。 polling_interval のデータ型は bigint で、既定値は 5 です。

    continuous を 1 に設定した場合、polling_interval はキャプチャ ジョブでのみ有効です。 指定する場合、値には負の数を指定できず、24 時間が上限になります。 値 0 を指定した場合、ログ スキャンの間に待機時間はありません。

  • [ @retention ] **=**retention
    変更データ行が変更テーブルに保持される分数を指定します。 retention のデータ型は bigint で、既定値は 4320 (72 時間) です。 最大値は 52494800 (100 年) です。 指定する場合、値は正の整数にする必要があります。

    retention はクリーンアップ ジョブでのみ有効です。

  • [ @threshold = ] 'delete_threshold'
    クリーンアップ時に 1 つのステートメントを使用して削除できる最大削除エントリ数を指定します delete_threshold のデータ型は bigint で、既定値は 5000 です。

リターン コードの値

0 (成功) または 1 (失敗)

結果セット

なし

説明

クリーンアップ ジョブは、データベースの最初のテーブルの変更データ キャプチャを有効にしたときに既定値を使って作成されます。 キャプチャ ジョブは、データベースの最初のテーブルの変更データ キャプチャを有効にしたとき、そのデータベースにトランザクション パブリケーションが存在しなかった場合に、既定値を使って作成されます。 トランザクション パブリケーションが存在する場合、トランザクション ログ リーダーを使ってキャプチャ メカニズムが実現されます。別個のキャプチャ ジョブは必要ありません (使用することもできません)。

クリーンアップ ジョブとキャプチャ ジョブは既定で作成されるため、このストアド プロシージャが必要となるのは、ジョブを明示的に削除した後で、再び作成する必要が生じた場合だけです。

ジョブの名前は、cdc.<database_name>_cleanup または cdc.<database_name>_capture になります。<database_name> は、現在のデータベースの名前を表します。 同じ名前のジョブが既に存在した場合、名前の後にピリオド (.) と一意の識別子が続きます。たとえば、cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52 のようになります。

クリーンアップ ジョブまたはキャプチャ ジョブの現在の構成を表示するには、sp_cdc_help_jobs を使用します。 ジョブの構成を変更するには sp_cdc_change_job を使用します。

権限

db_owner 固定データベース ロールのメンバーシップが必要です。

使用例

A. キャプチャ ジョブを作成する

次の例では、キャプチャ ジョブを作成します。 明示的に削除された既存のクリーンアップ ジョブを改めて作成するという状況を想定しています。 ジョブは既定値を使って作成されます。

USE AdventureWorks2012;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO

B. クリーンアップ ジョブを作成する

次の例では、AdventureWorks2012 データベースにクリーンアップ ジョブを作成します。 パラメーター @start\_job は 0 に、@retention は 5760 分 (96 時間) に設定します。 明示的に削除された既存のクリーンアップ ジョブを改めて作成するという状況を想定しています。

USE AdventureWorks2012;
GO
EXEC sys.sp_cdc_add_job
     @job_type = N'cleanup'
    ,@start_job = 0
    ,@retention = 5760;

関連項目

参照

dbo.cdc_jobs (Transact-SQL)

sys.sp_cdc_enable_table (Transact-SQL)

概念

変更データ キャプチャについて (SQL Server)