증상
Microsoft SQL Server 2014, 2016 또는 2017에서 변경 데이터 캡처를 사용 하도록 설정 된 데이터베이스를 첨부 한다고 가정 합니다. 데이터베이스가 시작 되는 동안 다시 실행할 트랜잭션이 있는 경우 변경 데이터 캡처는 일관성 없는 상태로 실행 될 수 있으며, 변경 데이터 캡처는 비활성 상태 이지만 변경 데이터 캡처 개체는 여전히 존재 합니다. 또한 다음과 같은 상황이 발생할 수 있습니다.
-
Sp_cdc_disable_db 저장 프로시저를 사용 하 여이 데이터베이스에 대 한 변경 데이터 캡처를 사용 하지 않도록 설정 하려고 하면 다음과 같은 오류 메시지가 나타납니다.
데이터베이스 DatabaseName 은 변경 데이터 캡처용으로 설정 되어 있지 않습니다. 올바른 데이터베이스 컨텍스트가 설정 되어 있는지 확인 하 고 작업을 다시 시도 하세요. 데이터 캡처 변경에 사용 되는 데이터베이스에 대해 보고 하려면, sys.debug catalog 보기에서 is_cdc_enabled 열을 쿼리 합니다.
-
Sp_cdc_enable_db 저장 프로시저를 사용 하 여이 데이터베이스에 대 한 변경 데이터 캡처를 사용 하도록 설정 하려고 하면 다음과 같은 오류 메시지가 나타납니다.
메시지 22906, 수준 16, 상태 1, 프로시저 sp_cdc_enable_db_internal, 줄 LineNumber사용자 이름 또는 SchemaName 이라는 데이터베이스 사용자가 현재 데이터베이스에 이미 있으므로 데이터베이스 DatabaseName 을 변경 데이터 캡처용으로 설정할 수 없습니다. 이러한 개체는 변경 데이터 캡처용으로만 필요 합니다. 사용자 또는 스키마를 삭제 하거나 이름을 바꾼 후 작업을 다시 시도 합니다.
해결 방법
이 문제는 다음과 같은 SQL Server 누적 업데이트에서 해결 되었습니다.
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참조
Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어에 대해 알아봅니다.