sys.sp_cdc_add_job (Transact-SQL)sys.sp_cdc_add_job (Transact-SQL)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Cria uma limpeza de captura de dados de alteração ou trabalho de captura no banco de dados atual.Creates a change data capture cleanup or capture job in the current database.

Ícone de link do tópico Convenções da sintaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

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

ArgumentosArguments

[ @job_type = ] 'job\_type'Tipo de trabalho a ser adicionado.[ @job_type = ] 'job\_type' Type of job to add. job_type é nvarchar (20) e não pode ser NULL.job_type is nvarchar(20) and cannot be NULL. As entradas válidas são "Capture" e "Cleanup".Valid inputs are 'capture' and 'cleanup'.

[ @start_job = ] start_jobSinalizador que indica se o trabalho deve ser iniciado imediatamente após ser adicionado.[ @start_job = ] start_job Flag indicating whether the job should be started immediately after it is added. start_job é bit com um padrão de 1.start_job is bit with a default of 1.

[ @maxtrans ] = max_transNúmero máximo de transações a serem processadas em cada ciclo de verificação.[ @maxtrans ] = max_trans Maximum number of transactions to process in each scan cycle. max_trans é int com um padrão de 500.max_trans is int with a default of 500. Se especificado, o valor deve ser um inteiro positivo.If specified, the value must be a positive integer.

max_trans é válido somente para trabalhos de captura.max_trans is valid only for capture jobs.

[ @maxscans ] = max\_scans_Número máximo de ciclos de verificação a serem executados para extrair todas as linhas do log.[ @maxscans ] = max\_scans_ Maximum number of scan cycles to execute in order to extract all rows from the log. max_scans é int com um padrão de 10.max_scans is int with a default of 10.

max_scan é válido somente para trabalhos de captura.max_scan is valid only for capture jobs.

[ @continuous ] = continuous_Indica se o trabalho de captura deve ser executado continuamente (1) ou ser executado apenas uma vez (0).[ @continuous ] = continuous_ Indicates whether the capture job is to run continuously (1), or run only once (0). continuou é bit com um padrão de 1.continuous is bit with a default of 1.

Quando Continuous = 1, o trabalho de sp_cdc_scan examina o log e processa até (max_trans * max_scans) transações.When continuous = 1, the sp_cdc_scan job scans the log and processes up to (max_trans * max_scans) transactions. Em seguida, ele aguarda o número de segundos especificado em polling_interval antes de iniciar a próxima verificação de log.It then waits the number of seconds specified in polling_interval before beginning the next log scan.

Quando Continuous = 0, o trabalho de sp_cdc_scan é executado até max_scans verificações do log, processamento de até max_trans transação durante cada verificação e, em seguida, é encerrado.When continuous = 0, the sp_cdc_scan job executes up to max_scans scans of the log, processing up to max_trans transaction during each scan, and then exits.

contínuo é válido somente para trabalhos de captura.continuous is valid only for capture jobs.

[ @pollinginterval ] = polling\_interval_Número de segundos entre os ciclos de verificação de log.[ @pollinginterval ] = polling\_interval_ Number of seconds between log scan cycles. polling_interval é bigint com um padrão de 5.polling_interval is bigint with a default of 5.

polling_interval é válido somente para trabalhos de captura quando a contínua é definida como 1.polling_interval is valid only for capture jobs when continuous is set to 1. Se especificado, o valor não pode ser negativo nem exceder 24 horas.If specified, the value cannot be negative and cannot exceed 24 hours. Se um valor 0 estiver especificado, não haverá espera entre os exames de log.If a value of 0 is specified, there is no wait between log scans.

[ @retention ] = retention_Número de minutos que as linhas de dados de alteração devem ser retidas em tabelas de alterações.[ @retention ] = retention_ Number of minutes that change data rows are to be retained in change tables. a retenção é bigint com um padrão de 4320 (72 horas).retention is bigint with a default of 4320 (72 hours). O valor máximo é 52494800 (100 anos).The maximum value is 52494800 (100 years). Se especificado, o valor deve ser um inteiro positivo.If specified, the value must be a positive integer.

a retenção é válida somente para trabalhos de limpeza.retention is valid only for cleanup jobs.

[ @threshold = ] 'delete\_threshold'Número máximo de entradas de exclusão que podem ser excluídas usando uma única instrução na limpeza.[ @threshold = ] 'delete\_threshold' Maximum number of delete entries that can be deleted by using a single statement on cleanup. delete_threshold é bigint com um padrão de 5000.delete_threshold is bigint with a default of 5000.

Valores do código de retornoReturn Code Values

0 (êxito) ou 1 (falha)0 (success) or 1 (failure)

Conjuntos de resultadosResult Sets

NenhumNone

ComentáriosRemarks

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.A cleanup job is created using the default values when the first table in the database is enabled for change data capture. 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.A capture job is created using the default values when the first table in the database is enabled for change data capture and no transactional publications exist for the database. Quando existir uma publicação transacional, o leitor do log transacional será usado para orientar o mecanismo de captura e um trabalho de captura separado não será nem necessário, nem permitido.When a transactional publication exists, the transactional log reader is used to drive the capture mechanism, and a separate capture job is neither required nor allowed.

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.Because the cleanup and capture jobs are created by default, this stored procedure is necessary only when a job has been explicitly dropped and must be recreated.

O nome do trabalho é CDC. limpeza de_ nome_>de banco de dados ou CDC. < **** captura de_ _>nome de banco de dados, em que<database_name>é o nome do banco de dados atual. < **The name of the job is cdc.<database_name>_cleanup or cdc.<database_name>_capture, where <database_name> is the name of the current database. Se já existir um trabalho com o mesmo nome, o nome será anexado com um ponto final (.) seguido por um identificador exclusivo, por exemplo: CDC. AdventureWorks_capture. A1ACBDED-13FC-428C-8302-10100EF74F52.If a job with the same name already exists, the name is appended with a period (.) followed by a unique identifier, for example: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52.

Para exibir a configuração atual de um trabalho de limpeza ou de captura, use sp_cdc_help_jobs.To view the current configuration of a cleanup or capture job, use sp_cdc_help_jobs. Para alterar a configuração de um trabalho, use sp_cdc_change_job.To change the configuration of a job, use sp_cdc_change_job.

PermissõesPermissions

Requer associação na função de banco de dados fixa db_owner .Requires membership in the db_owner fixed database role.

ExemplosExamples

a.A. Criando um trabalho de capturaCreating a capture job

O seguinte exemplo cria um trabalho de captura.The following example creates a capture job. Este exemplo parte do pressuposto de que o trabalho de limpeza existente foi explicitamente encerrado e deve ser recriado.This example assumes that the existing cleanup job was explicitly dropped and must be recreated. O trabalho é criado usando os valores padrão.The job is created using the default values.

USE AdventureWorks2012;  
GO  
EXEC sys.sp_cdc_add_job @job_type = N'capture';  
GO  

B.B. Criando um trabalho de limpezaCreating a cleanup job

O exemplo a seguir cria um trabalho de limpeza no banco de dados AdventureWorks2012AdventureWorks2012.The following example creates a cleanup job in the AdventureWorks2012AdventureWorks2012 database. O parâmetro @start_job é definido em 0 e @retention é definido em 5760 minutos (96 horas).The parameter @start_job is set to 0 and @retention is set to 5760 minutes (96 hours). Este exemplo parte do pressuposto de que o trabalho de limpeza existente foi explicitamente encerrado e deve ser recriado.This example assumes that the existing cleanup job was explicitly dropped and must be recreated.

USE AdventureWorks2012;  
GO  
EXEC sys.sp_cdc_add_job  
     @job_type = N'cleanup'  
    ,@start_job = 0  
    ,@retention = 5760;  

Consulte TambémSee Also

o dbo. cdc_jobs ()Transact-SQL dbo.cdc_jobs (Transact-SQL)
sys. sp_cdc_enable_table (Transact-SQL) sys.sp_cdc_enable_table (Transact-SQL)
Sobre a captura de dados de alterações (SQL Server)About Change Data Capture (SQL Server)