Symptomer
Den sp_replmonitorsubscriptionpendingcmds lagrede procedure er ikke kompatibel med peer-to-peer-replikering (P2P). Det returnerer et forkert antal ventende kommandoer. Når du har anvendt denne rettelse, er sp_replmonitorsubscriptionpendingcmds kompatibel med P2P-replikering.
Bemærk! Fanen "Ikke-distribuerede kommandoer" i en replikeringsovervågning aktiverer sp_replmonitorsubscriptionpendingcmds i baggrunden.
Løsning
Oplysninger om samlet opdatering
Dette problem er rettet i følgende kumulative opdateringer til SQL Server:
Bemærk! Når du har anvendt denne kumulative opdatering, rapporterer sp_replmonitorsubscriptionpendingcmds muligvis stadig et forkert antal ventende kommandoer til P2P-replikering, hvis den MSrepl_originators tabel indeholder forældede poster.
Hvis den MSrepl_originators tabel indeholder forældede poster, vil kørsel af sp_replmonitorsubscriptionpendingcmds generere følgende advarselsmeddelelse i fejlloggen for SQL Server:
Advarsel: Det er ikke muligt at hente databaseversionen for abonnementsdatabasen '<database_name>'. Den sp_replmonitorsubscriptionpendingcmdskan rapportere det forkerte antal ventende kommandoer til P2P-replikering.
Du kan løse dette problem ved enten at slette forældede poster fra MSrepl_originators eller overføre den korrekte "dbversion" af en abonnementsdatabase som et subdb_version argument , når du kører sp_replmonitorsubscriptionpendingcmds.
Tip!: Du kan vælge en af følgende metoder til at finde "dbversion" af en abonnementsdatabase:
-
Kør følgende forespørgsel på en distributionsdatabase: select dbversion from MSrepl_originators
where publisher_database_id = <Publisher_Database_ID>
and srvname = <Subscriber_Server>
and dbname = <Subscriber_Database>
Bemærk ! Du skal erstatte de relevante værdier med <Publisher_Database_ID> , <Subscriber_Server> og <Subscriber_Database>. -
Kør følgende forespørgsel på en abonnementsdatabase: declare @current_version int , @currentGuid uniqueidentifier
select @currentGuid = recovery_fork_guid
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
Hver ny samlet opdatering til SQL Server indeholder alle de hotfixes og sikkerhedsrettelser, der var i det tidligere build. Vi anbefaler, at du installerer det nyeste build til din version af SQL Server:
Status
Microsoft har bekræftet, at problemet findes i de Microsoft-produkter, der er angivet i afsnittet "Gælder for".
Referencer
Få mere at vide om den terminologi , som Microsoft bruger til at beskrive softwareopdateringer.