Sdílet prostřednictvím


sys.sp_cdc_add_job (Transact-SQL)

platí pro:SQL Server

Vytváří změnu nebo zachycení dat v aktuální databázi.

Transact-SQL konvence syntaxe

Syntaxe

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

Arguments

[ @job_type = ] N'job_type'

Typ práce, kterou přidat. @job_type je nvarchar(20) a nemůže být NULL. Platné vstupy jsou capture a cleanup.

[ @start_job = ] start_job

Vlajka označující, zda by měla být práce zahájena ihned po jejím přidání. @start_job je bit s výchozím .1

[ @maxtrans ] = max_trans

Maximální počet transakcí k zpracování v každém skenovacím cyklu. @maxtrans je int s výchozím hodnotou 500. Pokud je zadáno, musí být hodnota kladné celé číslo.

@maxtrans platí pouze pro zachycení pracovních míst.

[ @maxscans ] = max_scans

Maximální počet cyklů skenování potřebných k vyřízení, aby bylo možné extrahovat všechny řádky z logu. @maxscans je int s výchozím hodnotou 10.

@max_scan platí pouze pro zachycení úkolů.

[ @continuous ] = spojitý

Označuje, zda má zachytávací úkol běžet nepřetržitě (1), nebo pouze jednou (0). @continuous je bit s výchozím nastavením 1.

  • Když je @continuous , 1sys.sp_cdc_scan úloha prohledá log a zpracovává až (@maxtrans * @maxscans) transakcí. Poté čeká počet sekund uvedený v @pollinginterval , než začne další logovací sken.

  • Když @continuous , 0úloha provede sp_cdc_scan@maxscans skenování logu, zpracuje až @maxtrans transakce během každého skenu a poté ukončí provoz.

@continuous platí pouze pro zachycení úloh.

[ @pollinginterval ] = polling_interval

Počet sekund mezi cykly logaritamu skenování. @pollinginterval je bigint s výchozím hodnotou 5.

@pollinginterval platí pouze pro zachycovací úlohy, pokud je @continuous nastaveno na 1. Pokud je uvedeno, hodnota musí být větší nebo rovna a 0 kratší než 24 hodin (až 86399 sekund). Pokud je uvedena hodnota , 0 mezi logy není žádná čekací pauza.

[ @retention ] = udržení

Počet minut, kdy se mění datové řádky, se má uchovávat v tabulkách změn. @retention je bigint s výchozím limitem 4320 (72 hodin). Maximální hodnota je 52494800 (100 let). Pokud je zadáno, musí být hodnota kladné celé číslo.

@retention platí pouze pro úklidové práce.

[ @threshold = ] 'delete_threshold'

Maximální počet položek pro mazání, které lze smazat použitím jediného příkazu při čištění. @threshold je bigint s výchozím hodnotou 5000.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Žádné.

Poznámky

Čistící úloha se vytváří pomocí výchozích hodnot, když je první tabulka v databázi povolena pro zachycení změn dat. Zachycení je vytvořeno pomocí výchozích hodnot, když je první tabulka v databázi povolena pro zachycení změn dat a pro databázi neexistují žádné transakční publikace. Když existuje transakční publikace, používá se transakční čtečka logů k řízení mechanismu zachycení a samostatná úloha zachycení není vyžadována ani povolena.

Protože úlohy pro čištění a zachycení jsou vytvářeny ve výchozím nastavení, je tato uložená procedura nutná pouze tehdy, když byla úloha explicitně zrušena a musí být znovu vytvořena.

Název úkolu je cdc.<database_name>_cleanup nebo cdc.<database_name>_capture, kde <database_name> je název aktuální databáze. Pokud již existuje práce se stejným názvem, je k názvu připojena tečka (.) následovaná jedinečným identifikátorem, například: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52.

Pro zobrazení aktuální konfigurace úklidové nebo zachycovací úlohy použijte sys.sp_cdc_help_jobs. Pro změnu konfigurace práce použijte sys.sp_cdc_change_job.

Povolení

Vyžaduje členství v db_owner pevné databázové roli.

Examples

A. Vytvořte zachycení úlohy

Následující příklad vytváří zachycení úkolu. Tento příklad předpokládá, že stávající úklidová práce byla explicitně zrušena a musí být znovu vytvořena. Práce je vytvořena pomocí výchozích hodnot.

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_add_job @job_type = N'capture';
GO

B. Vytvořte úklidovou práci

Následující příklad vytváří úklidovou práci v databázi AdventureWorks2025. Parametr @start_job je nastaven na 0 a @retention na 5760 minut (96 hodin). Tento příklad předpokládá, že stávající úklidová práce byla explicitně zrušena a musí být znovu vytvořena.

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_add_job
    @job_type = N'cleanup',
    @start_job = 0,
    @retention = 5760;