시스템 CLR 데이터 형식(geometry, geography 또는 hierarchyid)을 사용하여 테이블에 대한 변경 내용을 처리할 때 CDC 캡처 작업이 실패합니다.
이 문서는 시스템 CLR 데이터 형식(geometry, geography 또는 hierarchyid)이 있는 테이블에 대한 변경 내용을 처리할 때 CDC 캡처 작업이 실패하는 문제를 해결하는 데 도움이 됩니다.
적용 대상: SQL Server
원래 KB 번호: 4538384
증상
다음 시나리오를 고려하세요.
- 기하 도형, 지리 또는 hierarchyid와 같은 시스템 CLR 데이터 형식이 있는 테이블에서 CDC(변경 데이터 캡처) 기능을 사용하도록 설정합니다.
- CDC 캡처(검사) 작업은 다른 테이블과 관련된 변경 내용을 처리하고 있습니다. 프로세스에서 시스템 CLR 데이터 형식이 있는 테이블에 아직 도달하지 않았습니다.
- 시스템 CLR 데이터 형식이 있는 테이블에서 DML(데이터 조작 언어)을 변경합니다. 그런 다음 동일한 테이블에서 DDL(데이터 정의 언어)을 변경합니다(예: 열을 추가).
이 시나리오에서는 CDC 캡처 작업이 시스템 CLR 데이터 형식이 있는 테이블을 처리하기 시작하면 실패하고 다음 오류 메시지를 반환합니다.
Msg 18805, Level 16, State 1, procedure sp_replcmds, LineLineNumber[Batch Start LineNumber ]
로그 검색 프로세스에서 LSN(로그 시퀀스 번호) {nnnnnnnnn: nnn: nn}에서 복제된 명령을 생성하지 못했습니다. 게시 데이터베이스를 백업하고 고객 지원 서비스에 문의하세요.
Msg 22859, Level 16, State 2, procedure sp_replcmds, LineNumber [Batch Start LineNumber]
로그 레코드를 처리하는 동안 로그 검사 프로세스가 실패했습니다. 원인을 식별하고 관련된 문제를 해결하려면 현재 세션의 이전 오류를 참조하세요.
Msg 3621, Level 16, State 6, procedure sp_replcmds, LineNumber [Batch Start LineNumber]
문이 종료되었습니다.
Msg 22864, Level 16, State 1, procedure sp_MScdc_capture_job, LineNumber[Batch Start LineNumber ]
데이터베이스 'DatabaseName'에 대한 캡처 작업에서 sp_MScdc_capture_job 호출하지 못했습니다. 오류의 원인은 이전 오류를 확인합니다.
또한 다음 항목이 오류 로그에 기록될 수 있습니다.
오류: 913, 심각도: 16, 상태: 16. 데이터베이스 IDID를 찾을 수 없습니다. 데이터베이스가 아직 활성화되지 않았거나 전환 중일 수 있습니다. 데이터베이스를 사용할 수 있게 되면 쿼리를 다시 실행합니다. 이 오류가 해당 상태를 전환하는 데이터베이스 때문이라고 생각하지 않는 경우 이 오류가 계속 발생합니다.
자세한 정보
CDC 캡처 작업이 처음에 DML만 처리한 다음 다음 실행 시 DDL 변경 사항을 처리하는 경우에는 이 문제가 발생하지 않습니다.
해결 방법
이 문제를 해결하려면 다음 방법 중 하나를 시도해 보세요.
CDC와 함께 문제가 있는 데이터 형식(geometry, geography, hierarchyid)을 사용하지 마세요.
기하 도형, 지리 또는 hierarchyid 데이터 형식이 있는 테이블에서 DDL을 변경할 때는 DML 변경 내용이 없는지 확인합니다. 이 문제를 방지하려면 다음 단계를 수행합니다.
- 모든 DML을 테이블로 정지합니다.
- 캡처 작업을 실행하여 변경 내용을 처리합니다.
- 테이블에 대해 DDL을 실행합니다.
- 캡처 작업을 실행하여 DDL 변경 내용을 처리합니다.
- DML 처리를 다시 사용하도록 설정합니다.
참고 항목
이 문제가 계속 발생하면 테이블에서 CDC를 사용하지 않도록 설정한 다음 다시 사용하도록 설정합니다.