다음을 통해 공유


sys.sp_cdc_add_job(Transact-SQL)

현재 데이터베이스의 변경 데이터 캡처 정리 또는 캡처 작업을 만듭니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

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

인수

  • [ [ @job_type= ] 'job_type'
    추가할 작업 유형입니다. job_type은 nvarchar(20)이며 NULL일 수 없습니다. 올바른 입력 값은 'capture' 및 **'cleanup'**입니다.

  • [ [ @start_job= ] start_job
    작업이 추가된 후 바로 시작되어야 하는지 여부를 나타내는 플래그입니다. start_job은 bit이며 기본값은 1입니다.

  • [ [ @maxtrans ] = max_trans
    각 검색 주기에서 처리할 최대 트랜잭션 수입니다. max_trans는 int이며 기본값은 500입니다. 지정된 경우 값은 양의 정수여야 합니다.

    max_trans는 캡처 작업에 대해서만 사용할 수 있습니다.

  • [ @maxscans ] **=**max_scans
    로그에서 모든 행을 추출하기 위해 실행할 최대 검색 주기 수입니다. max_scans는 int이며 기본값은 10입니다.

    max_scan은 캡처 작업에 대해서만 사용할 수 있습니다.

  • [ [ @continuous ] **=**continuous
    캡처 작업을 계속 실행(1)할지, 아니면 한 번만 실행(0)할지를 나타냅니다. continuous는 bit이며 기본값은 1입니다.

    continuous가 1일 경우 sp_cdc_scan 작업은 로그를 검색하고 최대 (max_trans * max_scans)개의 트랜잭션을 처리합니다. 그런 다음 polling_interval에 지정된 시간(초)동안 기다린 후 다음 로그 검색을 시작합니다.

    continuous가 0일 경우 sp_cdc_scan 작업은 최대 max_scans번까지 로그 검색을 실행하며 각 검색 중에 최대 max_trans개의 트랜잭션을 처리한 다음 종료됩니다.

    continuous는 캡처 작업에 대해서만 사용할 수 있습니다.

  • [ [ @pollinginterval ] **=**polling_interval
    로그 검색 주기 사이의 시간(초)입니다. polling_interval은 bigint이며 기본값은 5입니다.

    continuous가 1로 설정된 경우 polling_interval은 캡처 작업에 대해서만 사용할 수 있습니다. 지정된 경우 값은 음수가 아니어야 하고 24시간을 초과할 수 없습니다. 값 0이 지정된 경우 로그 검색 간에 대기 시간이 없습니다.

  • [ [ @retention ] **=**retention
    변경 테이블에 변경 데이터 행이 보관되는 시간(분)입니다. retention은 bigint이며 기본값은 4320(72시간)입니다. 최대값은 52494800(100년)입니다. 지정된 경우 값은 양의 정수여야 합니다.

    retention은 정리 작업에 대해서만 사용할 수 있습니다.

  • [ [ @threshold = ] 'delete_threshold'
    정리 시 단일 문을 사용하여 삭제할 수 있는 삭제 항목의 최대 수입니다. delete_threshold는 bigint이며 기본값은 5000입니다.

반환 코드 값

0(성공) 또는 1(실패)

결과 집합

없음

주의

정리 작업은 데이터베이스의 첫 번째 테이블에 변경 데이터 캡처가 활성화된 경우 기본값을 사용하여 만들어집니다. 캡처 작업은 데이터베이스의 첫 번째 테이블에 변경 데이터 캡처가 활성화되고 데이터베이스에 대한 트랜잭션 게시가 없는 경우 기본값을 사용하여 만들어집니다. 트랜잭션 게시가 있는 경우 트랜잭션 로그 판독기를 사용하여 캡처 메커니즘을 구동하므로 별개의 캡처 작업이 필요 없고 허용되지도 않습니다.

정리 및 캡처 작업은 기본적으로 만들어지므로 이 저장 프로시저는 작업이 명시적으로 삭제되어 다시 만들어야 하는 경우에만 필요합니다.

이 작업의 이름은 cdc.<database_name>_cleanup 또는 cdc.<database_name>_capture입니다. 여기서 <database_name>은 현재 데이터베이스의 이름입니다. 같은 이름을 가진 작업이 이미 있으면 이름에 마침표(.)가 붙고 그 뒤에 고유 식별자가 옵니다(예: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52).

정리 또는 캡처 작업의 현재 구성을 보려면 sp_cdc_help_jobs를 사용합니다. 작업의 구성을 변경하려면 sp_cdc_change_job을 사용합니다.

사용 권한

db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다.

1. 캡처 작업 만들기

다음 예에서는 캡처 작업을 만듭니다. 이 예에서는 기존 정리 작업이 명시적으로 삭제되어 다시 만들어야 한다고 가정합니다. 작업은 기본값을 사용하여 만들어집니다.

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

2. 정리 작업 만들기

다음 예에서는 AdventureWorks 데이터베이스에서 정리 작업을 만듭니다. 매개 변수 @start\_job은 0으로, @retention은 5760분(96시간)으로 설정됩니다. 이 예에서는 기존 정리 작업이 명시적으로 삭제되어 다시 만들어야 한다고 가정합니다.

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