sys.sp_cdc_add_job (Transact-SQL)
Erstellt einen Cleanup- oder Aufzeichnungsauftrag für Change Data Capture in der aktuellen Datenbank.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version). |
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'
Der Typ des hinzuzufügenden Auftrags. job_type ist vom Datentyp nvarchar(20) und darf nicht NULL sein. Gültige Eingaben sind 'capture' und 'cleanup'.[ @start_job= ] start_job
Ein Flag, das angibt, ob der Auftrag sofort nach dem Hinzufügen gestartet werden soll. 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 kontinuierlich (1) oder nur einmal (0) ausgeführt wird. continuous ist vom Datentyp bit. Der Standardwert ist 1.Wenn continuous = 1 ist, 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. Der Standardwert ist 5000.
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 ist cdc.<database_name>_cleanup oder cdc.<database_name>_capture, wobei <database_name> den Namen der aktuellen Datenbank angibt. 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 AdventureWorks2012;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO
B.Erstellen eines Cleanupauftrags
Im folgenden Beispiel wird ein Cleanupauftrag in der AdventureWorks2012-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 AdventureWorks2012;
GO
EXEC sys.sp_cdc_add_job
@job_type = N'cleanup'
,@start_job = 0
,@retention = 5760;
Siehe auch
Verweis
sys.sp_cdc_enable_table (Transact-SQL)