Symptomy
Procedura składowana sp_replmonitorsubscriptionpendingcmds nie jest zgodna z replikacją równorzędną (P2P). Zwraca nieprawidłową liczbę oczekujących poleceń. Po zastosowaniu tej poprawki sp_replmonitorsubscriptionpendingcmds będą zgodne z replikacją P2P.
UwagaKarta "Nierozłączone polecenia" monitora replikacji wywołuje sp_replmonitorsubscriptionpendingcmds w tle.
Rozwiązanie
Informacje o aktualizacji zbiorczej
Ten problem został rozwiązany w następujących aktualizacjach zbiorczych dla SQL Server:
Uwaga Po zastosowaniu tej aktualizacji zbiorczej sp_replmonitorsubscriptionpendingcmds może nadal zgłaszać niepoprawną liczbę oczekujących poleceń replikacji P2P, jeśli tabela MSrepl_originators zawiera nieaktualne wpisy.
Jeśli tabela MSrepl_originators zawiera nieaktualne wpisy, uruchomienie sp_replmonitorsubscriptionpendingcmds spowoduje wygenerowanie następującego komunikatu ostrzegawczego w dzienniku błędów SQL Server:
Ostrzeżenie: Nie można uzyskać wersji bazy danych dla bazy danych subskrypcji " <database_name>". Sp_replmonitorsubscriptionpendingcmdsmoże zgłaszać nieprawidłową liczbę oczekujących poleceń replikacji P2P.
Aby rozwiązać ten problem, usuń nieaktualne wpisy z MSrepl_originators lub przekaż poprawną "dbversion" bazy danych subskrypcji jako argument subdb_version podczas uruchamiania sp_replmonitorsubscriptionpendingcmds.
Porady: Aby znaleźć "dbversion" bazy danych subskrypcji, możesz wybrać jedną z następujących metod:
-
Uruchom następujące zapytanie w bazie danych dystrybucji: select dbversion from MSrepl_originatorswhere publisher_database_id = <Publisher_Database_ID>and srvname = <Subscriber_Server>and dbname = <Subscriber_Database>Uwaga Należy zastąpić odpowiednie wartości <Publisher_Database_ID>, <Subscriber_Server> i <Subscriber_Database>.
-
Uruchom następujące zapytanie w bazie danych subskrypcji: 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
Każda nowa aktualizacja zbiorcza dla SQL Server zawiera wszystkie poprawki i poprawki zabezpieczeń, które były w poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla twojej wersji SQL Server:
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".
Informacje
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.