sys.sp_cdc_add_job (Transact-SQL)
Gilt für: SQL Server
Erstellt einen Cleanup- oder Aufzeichnungsauftrag für Change Data Capture in der aktuellen Datenbank.
Transact-SQL-Syntaxkonventionen
Syntax
sys.sp_cdc_add_job [ @job_type = ] N'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 = ] N'job_type'
Der Typ des hinzuzufügenden Auftrags. @job_type ist nvarchar(20) und kann nicht seinNULL
. Gültige Eingaben sind capture
und cleanup
.
[ @start_job = ] start_job
Flag, das angibt, ob der Auftrag unmittelbar nach dem Hinzufügen gestartet werden soll. @start_job ist bit mit einem Standardwert von 1
.
[ @maxtrans ] = max_trans
Maximale Anzahl der in jedem Scanzyklus zu verarbeitenden Transaktionen. @maxtrans ist int mit einem Standardwert von 500
. Wenn dieser Wert angegeben ist, muss er eine positive ganze Zahl annehmen.
@maxtrans gilt nur für Erfassungsaufträge.
[ @maxscans ] = max_scans
Maximale Anzahl der Scanzyklen, die ausgeführt werden sollen, um alle Zeilen aus dem Protokoll zu extrahieren. @maxscans ist int mit einem Standardwert von 10
.
@max_scan gilt nur für Erfassungsaufträge.
[ @continuous ] = fortlaufend
Gibt an, ob der Aufnahmeauftrag kontinuierlich ausgeführt werden soll (1
) oder nur einmal (0
). @continuous ist bit mit einem Standardwert von 1
.
Wenn @continuous ist
1
, überprüft der sys.sp_cdc_scan Auftrag das Protokoll und verarbeitet bis (@maxtrans * @maxscans
) Transaktionen. Anschließend wird die in @pollinginterval angegebene Anzahl von Sekunden gewartet, bevor die nächste Protokollüberprüfung beginnt.Wenn @continuous ist
0
, wird dersp_cdc_scan
Auftrag bis zu @maxscans Scans des Protokolls ausgeführt, während der einzelnen Überprüfungen bis zu @maxtrans Transaktion verarbeitet und dann beendet.
@continuous gilt nur für Erfassungsaufträge.
[ @pollinginterval ] = polling_interval
Anzahl Sekunden zwischen Protokollscanzyklen. @pollinginterval ist bigint mit einem Standardwert von 5
.
@pollinginterval ist nur für Erfassungsaufträge gültig, wenn @continuous auf "1
. Wenn angegeben, muss der Wert größer oder gleich 0
und kleiner als 24 Stunden (bis zu 86399 Sekunden) sein. Wenn ein Wert 0
angegeben ist, gibt es zwischen Protokollscans keine Wartezeit.
[ @retention ] = Aufbewahrung
Anzahl der Minuten, für die Änderungsdatenzeilen in Änderungstabellen beibehalten werden sollen. @retention ist großint mit einem Standardwert von 4320
(72 Stunden). Der Maximalwert ist 52494800
(100 Jahre). Wenn dieser Wert angegeben ist, muss er eine positive ganze Zahl annehmen.
@retention gilt nur für Bereinigungsaufträge.
[ @threshold = ] 'delete_threshold'
Maximale Anzahl von Löscheinträgen, die mithilfe einer einzelnen Anweisung zum Bereinigen gelöscht werden können. @threshold ist großint mit einem Standardwert von 5000
.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Resultset
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 Erfassungsmechanismus zu steuern, und ein separater Erfassungsauftrag ist nicht erforderlich oder 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>
der Name der aktuellen Datenbank ist. Wenn bereits ein Auftrag mit demselben Namen vorhanden ist, wird der Name mit einem Punkt (.
) gefolgt von einem eindeutigen Bezeichner angefügt, z. B.: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52
.
Um die aktuelle Konfiguration eines Bereinigungs- oder Aufnahmeauftrags anzuzeigen, verwenden Sie sys.sp_cdc_help_jobs. Verwenden Sie sys.sp_cdc_change_job, um die Konfiguration eines Auftrags zu ändern.
Berechtigungen
Hierfür ist die Mitgliedschaft in der festen Datenbankrolle db_owner erforderlich.
Beispiele
A. Erstellen eines Aufnahmeauftrags
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 AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO
B. Erstellen eines Bereinigungsauftrags
Im folgenden Beispiel wird ein Bereinigungsauftrag in der AdventureWorks2022-Datenbank erstellt. Der Parameter @start_job wird auf 0
und @retention 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 AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job
@job_type = N'cleanup',
@start_job = 0,
@retention = 5760;