Compartilhar via


sys.sp_cdc_add_job (Transact-SQL)

Cria uma limpeza de captura de dados de alteração ou trabalho de captura no banco de dados atual.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @job_type= ] 'job_type'
    Tipo de trabalho a ser adicionado. 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 depois de adicionado. start_job é bit com um padrão de 1.

  • [ @maxtrans ] = max_trans
    Número máximo de transações a serem processadas em cada ciclo de verificação. max_trans é int com um padrão de 500. Se especificado, o valor deve ser um inteiro positivo.

    max_trans é válido somente para trabalhos de captura.

  • [ @maxscans ] **=**max_scans
    Número máximo de ciclos de verificação a ser executado para extrair todas as linhas do log. max_scans é int com um padrão de 10.

    max_scan é válido somente para trabalhos de captura.

  • [ @continuous ] **=**continuous
    Indica se o trabalho de captura deve ser executado continuamente (1) ou apenas uma vez (0). continuous é bit com um padrão de 1.

    Quando continuous = 1, o trabalho sp_cdc_scan examina o log e processa até (max_trans * max_scans) transações. Em seguida, aguarda o número de segundos especificado em polling_interval antes de começar a próxima verificação de log.

    Quando continuous = 0, o trabalho sp_cdc_scan executa até max_scans verificações do log, processando até max_trans transações durante cada verificação, encerrando em seguida.

    continuous é válido somente para trabalhos de captura.

  • [ @pollinginterval ] **=**polling_interval
    Número de segundos entre ciclos de exame de log. polling_interval é bigint com um padrão de 5.

    polling_interval é válido somente para trabalhos de captura quando continuous está definido como 1. Se especificado, o valor não pode ser negativo nem exceder 24 horas. Se um valor 0 estiver especificado, não haverá espera entre os exames de log.

  • [ @retention ] **=**retention
    Número de minutos em que as linhas de alteração de dados são mantidas nas 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 somente para trabalhos de limpeza.

  • [ @threshold = ] 'delete_threshold'
    O número máximo de entradas de exclusão que podem ser excluídas usando uma única instrução na limpeza. delete_threshold é bigint com um padrão de 5000.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos 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 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.

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 um trabalho com o mesmo nome existe, o nome é 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 sp_cdc_help_jobs. Para alterar a configuração de um trabalho, use sp_cdc_change_job.

Permissões

Requer associação na função de banco de dados fixa db_owner.

Exemplos

A. Para 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 AdventureWorks2008R2;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO

B. Criando um trabalho de limpeza

O exemplo a seguir cria um trabalho de limpeza no banco de dados AdventureWorks2008R2. O parâmetro @start_job é definido em 0 e @retention é definido em 5760 minutos (96 horas). Este exemplo parte do pressuposto de que o trabalho de limpeza existente foi explicitamente encerrado e deve ser recriado.

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