sys.sp_cdc_add_job (Transact-SQL)

Erstellt einen Cleanup- oder Aufzeichnungsauftrag für Change Data Capture in der aktuellen Datenbank.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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' ]

Argumente

  • [ @job_type= ] 'job_type'
    Typ des hinzuzufügenden Auftrags. job_type ist vom Datentyp nvarchar(20) und kann nicht NULL sein. Gültige Eingaben sind 'capture' und 'cleanup'.

  • [ [ @start_job= ] start_job
    Flag, das angibt, ob der Auftrag sofort gestartet werden soll, nachdem er hinzugefügt wurde. start_job ist vom Datentyp bit. Der Standardwert ist 1.

  • [ [ @maxtrans ] = max_trans
    Maximale Anzahl der in jedem Scanzyklus zu verarbeitenden Transaktionen. max_trans ist vom Datentyp int. Der Standardwert ist 500. Wenn dieser Wert angegeben ist, muss er eine positive ganze Zahl annehmen.

    max_trans ist nur für Aufzeichnungsaufträge gültig.

  • [ @maxscans ] **=**max_scans
    Maximale Anzahl der Scanzyklen, die ausgeführt werden sollen, um alle Zeilen aus dem Protokoll zu extrahieren. max_scans ist vom Datentyp int. Der Standardwert ist 10.

    max_scan ist nur für Aufzeichnungsaufträge gültig.

  • [ @continuous ] **=**continuous
    Gibt an, ob der Aufzeichnungsauftrag fortlaufend (1) oder nur einmalig (0) ausgeführt werden soll. continuous ist vom Datentyp bit. Der Standardwert ist 1.

    Wenn continuous = 1, scannt der sp_cdc_scan-Auftrag das Protokoll und verarbeitet bis zu (max_trans * max_scans) Transaktionen. Er wartet dann vor dem Starten des nächsten Protokollscans die Anzahl der Sekunden ab, die in polling_interval angegeben ist.

    Wenn continuous = 0, führt der sp_cdc_scan-Auftrag bis zu max_scans Scanvorgänge des Protokolls aus, verarbeitet dabei bis zu max_trans Transaktionen während jedes Scanvorgangs und wird dann beendet.

    continuous ist nur für Aufzeichnungsaufträge gültig.

  • [ @pollinginterval ] **=**polling_interval
    Anzahl der Sekunden zwischen Protokollscanzyklen. polling_interval ist vom Datentyp bigint. Der Standardwert ist 5.

    polling_interval ist nur für Aufzeichnungsaufträge gültig, wenn continuous auf 1 festgelegt ist. Wenn angegeben, kann der Wert nicht negativ sein und 24 Stunden nicht übersteigen. Wenn der Wert 0 angegeben ist, wird zwischen den Protokollscans nicht gewartet.

  • [ @retention ] **=**retention
    Anzahl der Minuten, für die Änderungsdatenzeilen in Änderungstabellen beibehalten werden sollen. retention ist vom Datentyp bigint. Der Standardwert ist 4320 (72 Stunden). Der Maximalwert beträgt 52494800 (100 Jahre). Wenn dieser Wert angegeben ist, muss er eine positive ganze Zahl annehmen.

    retention ist nur für Cleanupaufträge gültig.

  • [ @threshold = ] 'delete_threshold'
    Die maximale Anzahl von Einträgen für Löschvorgänge, die mit einer einzelnen Anweisung beim Cleanup gelöscht werden können. delete_threshold ist vom Datentyp bigint und weist einen Standardwert von 5000 auf.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Es wird ein Cleanupauftrag mit den Standardwerten erstellt, wenn die erste Tabelle in der Datenbank für Change Data Capture aktiviert ist. Es wird ein Aufzeichnungsauftrag mit den Standardwerten erstellt, wenn die erste Tabelle in der Datenbank für Change Data Capture aktiviert ist und keine Transaktionsveröffentlichungen für diese Datenbank vorhanden sind. Wenn eine Transaktionsveröffentlichung vorhanden ist, wird der Transaktionsprotokollleser verwendet, um den Aufzeichnungsmechanismus zu ermöglichen. Ein separater Aufzeichnungsauftrag ist dann weder erforderlich noch zulässig.

Da die Cleanup- und Aufzeichnungsaufträge standardmäßig erstellt werden, ist diese gespeicherte Prozedur nur dann erforderlich, wenn ein Auftrag explizit gelöscht wurde und erneut erstellt werden muss.

Der Name des Auftrags lautet cdc.<database_name>_cleanup oder cdc.<database_name>_capture, wobei <database_name> der Name der aktuellen Datenbank ist. Wenn bereits ein Auftrag mit demselben Namen vorhanden ist, werden dem Namen ein Punkt (.) und ein eindeutiger Bezeichner angehängt. Beispiel: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52.

Zum Anzeigen der aktuellen Konfiguration eines cleanup- oder capture-Auftrags verwenden Sie sp_cdc_help_jobs. Um die Konfiguration eines Auftrags zu ändern, verwenden Sie sp_cdc_change_job.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Datenbankrolle db_owner.

Beispiele

A. Erstellen eines Aufzeichnungsauftrags

Im folgenden Beispiel wird ein Aufzeichnungsauftrag erstellt. In diesem Beispiel wird davon ausgegangen, dass der vorhandene Cleanupauftrag explizit gelöscht wurde und erneut erstellt werden muss. Der Auftrag wird mit den Standardwerten erstellt.

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

B. Erstellen eines Cleanupauftrags

Im folgenden Beispiel wird ein Cleanupauftrag in der AdventureWorks-Datenbank erstellt. Der @start\_job-Parameter wird auf 0 festgelegt, und @retention wird auf 5760 Minuten (96 Stunden) festgelegt. In diesem Beispiel wird davon ausgegangen, dass der vorhandene Cleanupauftrag explizit gelöscht wurde und erneut erstellt werden muss.

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