sys.sp_cdc_add_job (Transact-SQL)

Gäller för:SQL Server

Skapar ett upprensnings- eller fångstjobb för förändringsdataregistrering i den aktuella databasen.

Transact-SQL syntaxkonventioner

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

Arguments

[ @job_type = ] N'job_type'

Typ av jobb att lägga till. @job_type är nvarchar(20) och kan inte vara NULLdet. Giltiga indata är capture och cleanup.

[ @start_job = ] start_job

Flagga som anger om jobbet ska påbörjas omedelbart efter att det lagts till. @start_jobbitas med standardvärdet .1

[ @maxtrans ] = max_trans

Maximalt antal transaktioner att hantera i varje skanningscykel. @maxtrans är int med en standard på 500. Om det anges måste värdet vara ett positivt heltal.

@maxtrans gäller endast för inspelningsjobb.

[ @maxscans ] = max_scans

Maximalt antal skanningscykler att köra för att extrahera alla rader från loggen. @maxscans är int med en standard på 10.

@max_scan gäller endast för capture-jobb.

[ @continuous ] = kontinuerlig

Anger om fångstjobbet ska köras kontinuerligt (1), eller endast köras en gång (0). @continuousbitas med standardvärdet .1

  • När @continuous är 1, skannar sys.sp_cdc_scan jobbet loggen och behandlar upp till (@maxtrans * @maxscans) transaktioner. Sedan väntar den på det antal sekunder som anges i @pollinginterval innan nästa loggskanning påbörjas.

  • När @continuous är 0, körs jobbet sp_cdc_scan upp till @maxscans skanningar av loggen, bearbetar upp till @maxtrans transaktion under varje skanning och avslutar sedan.

@continuous gäller endast för capture-jobb.

[ @pollinginterval ] = polling_interval

Antal sekunder mellan logskanningscykler. @pollinginterval är bigint med en standard på 5.

@pollinginterval gäller endast för capture-jobb när @continuous är satt till 1. Om det anges måste värdet vara större än eller lika med 0 och mindre än 24 timmar (upp till 86 399 sekunder). Om ett värde på 0 anges finns det ingen väntetid mellan loggskanningarna.

[ @retention ] = retention

Antalet minuter som ändrar datarader ska sparas i ändringstabeller. @retention är bigint med en standardtid på 4320 (72 timmar). Maxvärdet är 52494800 (100 år). Om det anges måste värdet vara ett positivt heltal.

@retention gäller endast för städjobb.

[ @threshold = ] 'delete_threshold'

Maximalt antal raderingsposter som kan raderas genom att använda en enda sats vid rensning. @threshold är bigint med en standard på 5000.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

Ingen.

Anmärkningar

Ett rensningsjobb skapas med standardvärdena när den första tabellen i databasen aktiveras för insamling av ändringsdata. Ett capture-jobb skapas med standardvärdena när den första tabellen i databasen aktiveras för ändringsdatafångst och inga transaktionella publikationer finns för databasen. När en transaktionell publikation finns används transaktionsloggläsaren för att driva fångstmekanismen, och ett separat fångstjobb krävs eller är inte tillåtet.

Eftersom rensnings- och fångstjobben skapas som standard är denna lagrade procedur endast nödvändig när ett jobb uttryckligen har tagits bort och måste återskapas.

Namnet på jobbet är cdc.<database_name>_cleanup eller cdc.<database_name>_capture, där <database_name> är namnet på den aktuella databasen. Om ett jobb med samma namn redan existerar, läggs namnet till med en punkt (.) följt av en unik identifierare, till exempel: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52.

För att se den aktuella konfigurationen av ett rensnings- eller fångstjobb, använd sys.sp_cdc_help_jobs. För att ändra konfigurationen av ett jobb, använd sys.sp_cdc_change_job.

Permissions

Kräver medlemskap i den db_owner fasta databasrollen.

Examples

A. Skapa ett capture-jobb

Följande exempel skapar ett capture-jobb. Detta exempel antar att det befintliga saneringsjobbet uttryckligen togs bort och måste återskapas. Jobbet skapas med standardvärdena.

USE AdventureWorks2022;
GO

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

B. Skapa ett saneringsjobb

Följande exempel skapar ett saneringsjobb i AdventureWorks2025-databasen. Parametern @start_job sätts till 0 och @retention är inställd på 5760 minuter (96 timmar). Detta exempel antar att det befintliga saneringsjobbet uttryckligen togs bort och måste återskapas.

USE AdventureWorks2022;
GO

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