다음을 통해 공유


CDC 출처

CDC 원본은 SQL Server 2014 변경 테이블에서 다양한 변경 데이터를 읽고 변경 내용을 다른 SSIS 구성 요소에 다운스트림으로 전달합니다.

CDC 원본에서 읽은 변경 데이터의 범위를 CDC 처리 범위라고 하며 현재 데이터 흐름이 시작되기 전에 실행되는 CDC 제어 태스크에 의해 결정됩니다. CDC 처리 범위는 테이블 그룹에 대한 CDC 처리 상태를 관리하는 기본 패키지 변수의 값에서 파생됩니다.

CDC 원본은 데이터베이스 테이블, 뷰 또는 SQL 문을 사용하여 SQL Server 데이터베이스에서 데이터를 추출합니다.

CDC 원본은 다음 구성을 사용합니다.

  • SQL Server CDC 데이터베이스에 액세스하기 위한 SQL Server ADO.NET 연결 관리자. CDC 원본 연결 구성에 대한 자세한 내용은 CDC 원본 편집기(연결 관리자 페이지)를 참조하세요.

  • CDC에 사용할 수 있는 테이블.

  • 선택한 테이블의 캡처 인스턴스 이름(둘 이상이 있는 경우).

  • 변경 처리 모드.

  • CDC 처리 범위가 결정되는 CDC 상태 패키지 변수의 이름. CDC 원본은 해당 변수를 수정하지 않습니다.

CDC 원본에 의해 반환되는 데이터는 SQL Server CDC 함수인 cdc.fn_cdc_get_all_changes_<capture-instance-name> 또는 cdc.fn_cdc_get_net_changes_<capture-instance-name>(사용 가능한 경우)에 의해 반환되는 데이터와 같습니다. 유일한 선택적 추가는 현재 처리 범위가 테이블의 초기 로드와 겹칠 수 있는지 여부를 나타내는 열인 __$initial_processing입니다. 초기 처리에 대한 자세한 내용은 CDC Control Task를 참조하세요.

CDC 원본에는 하나의 일반 출력과 하나의 오류 출력이 있습니다.

오류 처리

CDC 원본에는 하나의 오류 출력이 있습니다. 구성 요소 오류 출력에 다음과 같은 출력 열이 포함됩니다.

  • 오류 코드: 값은 항상 -1입니다.

  • 오류 열: 오류를 일으키는 원본 열입니다(변환 오류의 경우).

  • 오류 행 열: 오류를 발생시키는 레코드 데이터입니다.

오류 동작 설정에 따라 CDC 원본은 추출 프로세스 중 발생하는 오류(데이터 변환, 잘림)를 오류 출력에 반환하는 작업을 지원합니다. 자세한 내용은 CDC 원본 편집기(오류 출력 페이지)를 참조하세요.

데이터 형식 지원

Microsoft의 CDC 원본 구성 요소는 올바른 SSIS 데이터 형식에 매핑되는 모든 SQL Server 데이터 형식을 지원합니다.

CDC 원본 문제 해결

다음에는 CDC 원본 문제 해결에 대한 정보가 들어 있습니다.

이 스크립트를 사용하여 문제를 격리하고 SQL Server Management Studio에서 해당 문제를 재현할 수 있습니다.

CDC 원본 작업은 CDC 원본을 호출하기 전에 실행된 CDC 제어 태스크의 작업에 의해 제어됩니다. CDC 제어 태스크는 시작 및 끝 LSN을 포함하도록 CDC 상태 패키지 변수의 값을 준비합니다. 니는 다음 스크립트와 같은 기능을 수행합니다.

use <cdc-enabled-database-name>  
               declare @start_lsn binary(10), @end_lsn binary(10)  
               set @start_lsn = sys.fn_cdc_increment_lsn(  
                       convert(binary(10),'0x' + '<value-from-state-cs>', 1))  
               set @end_lsn =   
                       convert(binary(10),'0x' + '<value-from-state-ce>', 1)  
               select * from cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,  
@end_lsn, '<mode>')  

위치:

  • <cdc-enabled-database-name>은 변경 테이블을 포함하는 SQL Server 데이터베이스의 이름입니다.

  • <value-from-state-cs>는 CDC 상태 변수에 CS/<value-from-state-cs>/로 나타나는 값입니다. CS는 현재 처리 범위 시작을 의미합니다.

  • <value-from-state-ce>는 CDC 상태 변수에 CE/<value-from-state-cs>/로 나타나는 값입니다. CE는 현재 처리 범위 끝을 의미합니다.

  • <mode>는 CDC 처리 모드입니다. 처리 모드에는 All, All with Old Values, Net, Net with Update Mask, Net with Merge 값 중 하나가 있습니다.

이 스크립트는 오류를 쉽게 재현하고 식별할 수 있는 SQL Server Management Studio에서 문제를 재현하고 식별하는 데 도움이 됩니다.

SQL 서버 오류 메시지

SQL Server에서 다음 메시지를 반환할 수 있습니다.

프로시저 또는 함수 cdc.fn_cdc_get_net_changes_<..>에 제공된 인수 개수가 부족합니다.

이 오류는 인수가 누락되었음을 나타내지 않습니다. 대신 CDC 상태 변수의 시작 또는 끝 LSN 값이 잘못되었음을 의미합니다.

CDC 원본 구성

SSIS 디자이너를 사용하거나 프로그래밍 방식으로 CDC 원본을 구성할 수 있습니다.

자세한 내용은 다음 항목 중 하나를 참조하십시오.

고급 편집기 대화 상자에는 프로그래밍 방식으로 설정할 수 있는 속성이 포함됩니다.

고급 편집기 대화 상자를 열려면

  • SQL Server 2014 Integration Services(SSIS) 프로젝트의 데이터 흐름 화면에서 CDC 원본을 마우스 오른쪽 단추로 클릭하고 고급 편집기 표시를 선택합니다.

고급 편집기 대화 상자에서 설정할 수 있는 속성에 대한 자세한 내용은 CDC 원본 사용자 지정 속성를 참조하십시오.

이 섹션 안에