MSSQL_ENG018752

Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure

Detalhes da mensagem

Atributo Valor
Nome do produto SQL Server
ID do evento 18752
Origem do Evento MSSQLSERVER
Componente Mecanismo de Banco de Dados do SQL Server
Nome simbólico
Texto da mensagem Somente um Agente de Leitor de Log ou um procedimento relacionado ao log (sp_repldone, sp_replcmds e sp_replshowcmds) pode se conectar ao banco de dados de cada vez. Se você tiver executado um procedimento relacionado ao log, descarte a conexão através da qual o procedimento foi executado ou execute sp_replflush por essa conexão antes de iniciar o Agente de Leitor de Log ou de executar outro procedimento relacionado ao log.

Explicação

Mais de uma conexão atual está tentando executar um dos seguintes: sp_repldone, sp_replcmdsou sp_replshowcmds. Os procedimentos armazenados sp_repldone (Transact-SQL) e sp_replcmds (Transact-SQL) são procedimentos armazenados usados pelo Log Reader Agent para localizar e atualizar informações sobre transações replicadas em um banco de dados publicado. O sp_replshowcmds de procedimento armazenado (Transact-SQL) é usado para solucionar determinados tipos de problemas com a replicação transacional.

Esse erro é gerado nas seguintes circunstâncias:

  • Se o Log Reader Agent de um banco de dados publicado estiver sendo executado e um segundo Log Reader Agent tentar ser executado no mesmo banco de dados, o erro será gerado para o segundo agente e será exibido no histórico do agente.

    Em uma situação na qual há vários agentes, é possível que mais de um agente seja resultado de um processo órfão.

  • Se o Agente de Leitor de Log de um banco de dados publicado for iniciado e um usuário executar sp_repldone, sp_replcmdsou sp_replshowcmds no mesmo banco de dados, o erro será gerado no aplicativo em que o procedimento armazenado foi executado (como sqlcmd).

  • Se nenhum Log Reader Agent estiver sendo executado para um banco de dados publicado, um usuário executar sp_repldone, sp_replcmdsou sp_replshowcmds e a conexão na qual o procedimento foi executado não for encerrada, o erro será gerado quando o Log Reader Agent tentar se conectar ao banco de dados.

Ação do usuário

As etapas a seguir podem ajudar a solucionar o problema. Se qualquer etapa permitir que o Log Reader Agent seja iniciado sem erros, não será necessário concluir as etapas restantes.

  • Verifique o histórico do Log Reader Agent em relação a qualquer outro erro que poderia estar contribuindo com esse erro. Para obter informações sobre como exibir detalhes de status e de erro do agente no Replication Monitor, confira Exibir informações e executar tarefas com o Replication Monitor.

  • Verifique a saída do sp_who (Transact-SQL) para obter SPIDs (números de identificação de processo) específicos conectados ao banco de dados publicado. Feche qualquer conexão que poderia haver executado sp_repldone, sp_replcmdsou sp_replshowcmds.

  • Reinicie o Agente de Leitor de Log. Para obter mais informações, confira Iniciar e interromper um agente de replicação (SQL Server Management Studio).

  • Reinicie o serviço SQL Server Agent (coloque-o offline ou online em um cluster) no Distribuidor. Se houver a possibilidade de que um trabalho agendado possa ter sido executado sp_repldone, sp_replcmds ou sp_replshowcmds de qualquer outra instância do SQL Server, reinicie o SQL Server Agent para essas instâncias também. Para obter mais informações, consulte Iniciar, parar ou pausar o serviço SQL Server Agent.

  • Execute sp_replflush (Transact-SQL) no Publicador no banco de dados de publicação e reinicie o Log Reader Agent.

  • Se o erro continuar ocorrendo, aumente o log do agente e especifique um arquivo de saída para o log. Dependendo do contexto do erro, isso poderá fornecer as etapas que levaram ao erro e/ou as mensagens de erros adicionais.