증상
sp_replmonitorsubscriptionpendingcmds 저장 프로시저는 P2P(피어 투 피어) 복제와 호환되지 않습니다. 잘못된 수의 보류 중인 명령을 반환합니다. 이 수정 사항을 적용하면 sp_replmonitorsubscriptionpendingcmds P2P 복제와 호환됩니다.
참고 복제 모니터의 "배포되지 않은 명령" 탭은 백그라운드에서 sp_replmonitorsubscriptionpendingcmds 호출합니다.
해결 방법
누적 업데이트 정보
이 문제는 SQL Server 대한 다음 누적 업데이트에서 해결되었습니다.
참고 이 누적 업데이트를 적용한 후에도 sp_replmonitorsubscriptionpendingcmds MSrepl_originators테이블에 부실 항목이 포함된 경우 P2P 복제에 대해 잘못된 수의 보류 중인 명령을 보고할 수 있습니다.
MSrepl_originators 테이블에 부실 항목이 포함된 경우 sp_replmonitorsubscriptionpendingcmds 실행하면 SQL Server 오류 로그에 다음 경고 메시지가 생성됩니다.
경고: 구독 데이터베이스 '<database_name > '에 대한 데이터베이스 버전을 가져올 수 없습니다. sp_replmonitorsubscriptionpendingcmdsP2P 복제에 대해 잘못된 수의 보류 중인 명령을 보고할 수 있습니다.
이 문제를 resolve MSrepl_originators 오래된 항목을 삭제하거나 sp_replmonitorsubscriptionpendingcmds 실행할 때 구독 데이터베이스의 올바른 "dbversion"을 subdb_version 인수 로 전달합니다.
팁: 다음 방법 중 하나를 선택하여 구독 데이터베이스의 "dbversion"을 찾을 수 있습니다.
-
배포 데이터베이스에서 다음 쿼리를 실행합니다. select dbversion from MSrepl_originators#x1
and srvname = <Subscriber_Server>
and dbname = <Subscriber_Database>참고 <Publisher_Database_ID>
, <Subscriber_Server> 및 <Subscriber_Database> 적절한 값을 대체해야 합니다. -
구독 데이터베이스에서 다음 쿼리를 실행합니다. declare @current_version int , @currentGuid uniqueidentifier#x1
from sys.database_recovery_status
where database_id = db_id()
select @current_version = substring(convert(binary(16), isnull(@currentGuid, 0x0)),1,6)
print @current_version
SQL Server 대한 각각의 새로운 누적 업데이트에는 이전 빌드에 있던 모든 핫픽스 및 보안 수정 사항이 포함되어 있습니다. SQL Server 버전에 대한 최신 빌드를 설치하는 것이 좋습니다.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참고 자료
Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어 에 대해 알아봅니다.