Gælder for
SQL Server 2019 on Windows SQL Server 2022 on Linux (all editions) SQL Server 2022 on Windows (all editions)

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_originatorswhere 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 uniqueidentifierselect @currentGuid = recovery_fork_guidfrom sys.database_recovery_statuswhere 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.

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.