sys.sp_cdc_add_job(Transact-SQL)
적용 대상: SQL Server
현재 데이터베이스에서 변경 데이터 캡처 정리 또는 캡처 작업을 만듭니다.
구문
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
. 잘못된 입력은 capture
및 cleanup
입니다.
[ @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;