증상
SQL Server 2014 또는 2016에서 sp_addpublication 저장 프로시저를 사용 하 여 트랜잭션 게시를 만들고 @allow_drop 속성을 True로 설정 했다고 가정 합니다. 발행물에 게시 된 테이블을 삭제 하 고 게시에서 오래 된 아티클을 수동으로 제거 하면 다음과 같은 오류 메시지가 나타날 수 있습니다.
원격 서버 "(null)"이 (가) 없습니다.
예를 들어이 문제는 다음 시나리오에서 발생 합니다.
-
트랜잭션 게시에서 테이블을 게시 한 다음 @allow_drop 속성을 True로 설정 합니다.
-
게시 된 테이블을 제거 합니다.
-
로그 판독기 에이전트는 테이블 삭제 명령과 관련 된 레코드를 처리 하기 전에 다음 저장 프로시저 중 하나를 사용 하 여 오래 된 문서를 정리 합니다.
-
sp_MSdropobsoletearticle
-
sp_droparticle
-
sp_droppublication
-
이 경우 다음과 같은 오류 메시지가 자세한 정보 로그에 기록 됩니다.
상태: 0, 코드: 1007, 텍스트: ' 프로세스가 'SQL_SERVER_INSTANCE'에서 ' sp_MSadd_replcmds '을 (를) 실행할 수 없습니다. 프로세스가 'SQL_SERVER_INSTANCE'에서 ' sp_MSadd_replcmds '을 (를) 실행할 수 없습니다. 복제 에이전트 상태: 6Status: 0, 코드: 1007, 텍스트: ' 원격 서버 "(null)"이 없거나, 유효한 게시자로 지정 되지 않았거나, 사용 가능한 게시자를 볼 수 있는 권한이 없을 수 있습니다. ' 상태: 4, 코드: 6001, text: ' Command Loader '에 대 한 ' 백그라운드 스레드를 종료 합니다. ' 상태: 0, 코드: 22020, 텍스트: ' 일괄 처리가 ' 배포자로 커밋되지 않았습니다. ' 상태: 0, 코드: 22037, 텍스트: ' 마지막 단계에서 메시지를 기록 하지 않았습니다. ' '
참고 SQL Server 2014 서비스 팩 2에 테이블 삭제 지원 (DROP 테이블 DDL)이 추가 되었습니다. 테이블 지원 삭제에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하세요.
3170123 SQL Server 2014의 트랜잭션 복제에 포함 된 문서에 대 한 DROP 테이블 DDL을 지원 합니다.
해결 방법
이 문제는 다음과 같은 SQL Server 누적 업데이트에서 해결 되었습니다.
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참조
Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어 에 대해 알아봅니다.