다음을 통해 공유


sys.sp_cdc_add_job(Transact-SQL)

적용 대상: SQL Server

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

Transact-SQL 구문 표기 규칙

구문

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

인수

[ @job_type = ] N'job_type'

추가할 작업의 유형입니다. @job_type nvarchar(20)이며 될 수 없습니다NULL. 잘못된 입력은 capturecleanup입니다.

[ @start_job = ] start_job

작업이 추가된 직후 작업을 시작해야 하는지 여부를 나타내는 플래그입니다. @start_job 기본값1비트입니다.

[ @maxtrans ] = max_trans

각 검색 주기에서 처리할 최대 트랜잭션 수입니다. @maxtrans 기본값500인 int입니다. 지정한 경우 값은 양의 정수여야 합니다.

@maxtrans 캡처 작업에만 유효합니다.

[ @maxscans ] = max_scans

로그에서 모든 행을 추출하기 위해 실행할 최대 검색 주기 수입니다. @maxscans 기본값10인 int입니다.

@max_scan 캡처 작업에만 유효합니다.

[ @continuous ] = continuous

캡처 작업이 연속적으로1 실행()되는지 아니면 한 번만 실행할지 여부를0 나타냅니다. @continuous 기본값인 비트입니다1.

  • @continuous 1경우 sys.sp_cdc_scan 작업은 로그를 검색하고 최대(@maxtrans * @maxscans) 트랜잭션을 처리합니다. 그런 다음 @pollinginterval 지정된 시간(초)을 기다린 후 다음 로그 검사를 시작합니다.

  • @continuous 0 sp_cdc_scan 경우 작업은 로그의 검색을 @maxscans 실행하여 각 검사 중에 최대 @maxtrans 트랜잭션을 처리한 다음 종료됩니다.

@continuous 캡처 작업에만 유효합니다.

[ @pollinginterval ] = polling_interval

로그 검색 주기 사이의 시간(초)입니다. @pollinginterval 기본값5인 bigint입니다.

@pollinginterval @continuous 설정된 경우 캡처 작업에만 유효합니다1. 지정된 경우 값은 24시간(최대 86399초)보다 크거나 같 0 아야 합니다. 값 0 이 지정된 경우 로그 검사 사이에 대기가 없습니다.

[ @retention ] = 보존

변경 데이터 행을 변경 테이블에 유지할 시간(분)입니다. @retention 기본값 4320 (72시간)으로 bigint입니다. 최대값은 (100년)입니다 52494800 . 지정한 경우 값은 양의 정수여야 합니다.

@retention 정리 작업에만 유효합니다.

[ @threshold = ] 'delete_threshold'

정리할 때 단일 문을 사용하여 삭제할 수 있는 최대 삭제 항목 수입니다. @threshold 기본값5000인 bigint입니다.

반환 코드 값

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

결과 집합

없음.

설명

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

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

작업의 이름 또는 cdc.<database_name>_cleanup cdc.<database_name>_capture현재 데이터베이스의 이름이 있는 위치 <database_name> 입니다. 이름이 같은 작업이 이미 있는 경우 이름에 마침표(.)와 고유 식별자가 추가됩니다. 예를 들면 다음과 cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52같습니다.

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

사용 권한

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

예제

A. 캡처 작업 만들기

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

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

B. 정리 작업 만들기

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

USE AdventureWorks2022;
GO

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