Aplica-se a
SQL Server 2019 on Windows SQL Server 2022 on Linux (all editions) SQL Server 2022 on Windows (all editions)

Sintomas

O procedimento armazenado sp_replmonitorsubscriptionpendingcmds não é compatível com a replicação P2P (ponto a ponto). Ele retorna um número incorreto de comandos pendentes. Depois de aplicar essa correção, sp_replmonitorsubscriptionpendingcmds será compatível com a replicação P2P.

Nota A  guia "Comandos não atribuídos" de um Monitor de Replicação invoca sp_replmonitorsubscriptionpendingcmds nos bastidores.

Resolução

Informações sobre a atualização cumulativa

Esse problema é corrigido nas seguintes atualizações cumulativas para SQL Server:

                Observação Depois de aplicar essa atualização cumulativa, sp_replmonitorsubscriptionpendingcmds ainda poderá relatar um número incorreto de comandos pendentes para replicação P2P se a tabela MSrepl_originators contiver entradas obsoletas.

Se a tabela MSrepl_originators contiver entradas obsoletas, a execução sp_replmonitorsubscriptionpendingcmds gerará a seguinte mensagem de aviso no log de erros do SQL Server:

Aviso: não é possível obter a versão do banco de dados para o banco de dados de assinatura ' <database_name>'. O sp_replmonitorsubscriptionpendingcmdspode relatar o número incorreto de comandos pendentes para replicação P2P.

Para resolve esse problema, exclua as entradas obsoletas de MSrepl_originators ou passe a "dbversion" correta de um banco de dados de assinatura como um argumento  subdb_version quando você executar sp_replmonitorsubscriptionpendingcmds.

Dicas: Você pode selecionar um dos seguintes métodos para encontrar a "dbversion" de um banco de dados de assinatura:

  • Execute a seguinte consulta em um banco de dados de distribuição: select dbversion from MSrepl_originatorswhere publisher_database_id = <Publisher_Database_ID>and srvname = <Subscriber_Server>and dbname = <Subscriber_Database>Observação Você precisa substituir os valores apropriados para <Publisher_Database_ID> , <Subscriber_Server> e <Subscriber_Database>.

  • Execute a seguinte consulta em um banco de dados de assinatura: 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

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e correções de segurança que estavam no build anterior. Recomendamos instalar o build mais recente para sua versão do SQL Server:

Status

A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".

Referências

Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.