sys.sp_cdc_add_job (Transact-SQL)
Aplica-se: SQL Server
Cria uma limpeza de captura de dados de alteração ou trabalho de captura no banco de dados atual.
Convenções de sintaxe de Transact-SQL
Sintaxe
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' ]
[ ; ]
Argumentos
@job_type [ = ] N'job_type'
Tipo de trabalho a adicionar. @job_type é nvarchar(20) e não pode ser NULL
. As entradas válidas são capture
e cleanup
.
@start_job [ = ] start_job
Sinalizador que indica se o trabalho deve ser iniciado imediatamente após ser adicionado. @start_job é bit com um padrão de 1
.
@maxtrans [] = max_trans
O número máximo de transações a processar em cada ciclo de exame. @maxtrans é int com um padrão de 500
. Se especificado, o valor deve ser um inteiro positivo.
@maxtrans é válido apenas para trabalhos de captura.
@maxscans [] = max_scans
O número máximo de ciclos de exame a executar para extrair todas as linhas do log. @maxscans é int com um padrão de 10
.
@max_scan é válido apenas para trabalhos de captura.
@continuous [] = contínuo
Indica se o trabalho de captura deve ser executado continuamente (1
) ou executado apenas uma vez (0
). @continuous é bit com um padrão de 1
.
Quando @continuous é
1
, o trabalho sys.sp_cdc_scan verifica o log e processa até (@maxtrans * @maxscans
) transações. Em seguida, ele aguarda o número de segundos especificado no @pollinginterval antes de iniciar a próxima verificação de log.Quando @continuous é
0
, osp_cdc_scan
trabalho executa até @maxscans varreduras do log, processando até @maxtrans transação durante cada varredura e, em seguida, sai.
@continuous é válido apenas para trabalhos de captura.
@pollinginterval [] = polling_interval
Número de segundos entre os ciclos de verificação de log. @pollinginterval é bigint com um padrão de 5
.
@pollinginterval é válido apenas para trabalhos de captura quando @continuous é definido como 1
. Se especificado, o valor deve ser maior ou igual a 0
e menor que 24 horas (até 86399 segundos). Se um valor de for especificado, não haverá espera entre as verificações de 0
log.
@retention [] = retenção
O número de minutos que as linhas de alteração de dados serão retidas em tabelas de alteração. @retention é bigint com um padrão de 4320
(72 horas). O valor máximo é 52494800
(100 anos). Se especificado, o valor deve ser um inteiro positivo.
@retention é válido apenas para trabalhos de limpeza.
@threshold [ = ] 'delete_threshold'
O número máximo de entradas de exclusão que podem ser excluídas com o uso de uma única instrução na limpeza. @threshold é bigint com um padrão de 5000
.
Valores do código de retorno
0
(sucesso) ou 1
(falha).
Conjunto de resultados
Nenhum.
Comentários
Um trabalho de limpeza é criado usando os valores padrão quando a primeira tabela no banco de dados é habilitada para captura de dados de alteração. Um trabalho de captura é criado usando os valores padrão quando a primeira tabela no banco de dados é habilitada para captura de dados de alteração e não há publicações transacionais no banco de dados. Quando existe uma publicação transacional, o leitor de log transacional é usado para conduzir o mecanismo de captura e um trabalho de captura separado não é necessário ou permitido.
Como os trabalhos de limpeza e captura são criados por padrão, este procedimento armazenado será necessário somente quando um trabalho tiver sido explicitamente encerrado e tiver de ser recriado.
O nome do trabalho é cdc.<database_name>_cleanup
ou cdc.<database_name>_capture
, onde <database_name>
é o nome do banco de dados atual. Se já existir um trabalho com o mesmo nome, o nome será anexado com um ponto (.
) seguido por um identificador exclusivo, por exemplo: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52
.
Para exibir a configuração atual de um trabalho de limpeza ou captura, use sys.sp_cdc_help_jobs. Para alterar a configuração de um trabalho, use sys.sp_cdc_change_job.
Permissões
Requer associação na função de banco de dados fixa db_owner.
Exemplos
R. Criar um trabalho de captura
O seguinte exemplo cria um trabalho de captura. Este exemplo parte do pressuposto de que o trabalho de limpeza existente foi explicitamente encerrado e deve ser recriado. O trabalho é criado usando os valores padrão.
USE AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO
B. Criar um trabalho de limpeza
O exemplo a seguir cria um trabalho de limpeza no banco de dados AdventureWorks2022. O parâmetro @start_job é definido como 0
e @retention é definido como 5760 minutos (96 horas). Este exemplo parte do pressuposto de que o trabalho de limpeza existente foi explicitamente encerrado e deve ser recriado.
USE AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job
@job_type = N'cleanup',
@start_job = 0,
@retention = 5760;