Compartilhar via


MSSQL_ENG018752

Detalhes da mensagem

Nome do produto

SQL Server

Versão do produto

10.0

Número da compilação do produto

 

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_replcmds ou sp_replshowcmds. Os procedimentos armazenados sp_repldone (Transact-SQL) e sp_replcmds (Transact-SQL) são usados pelo Agente de Leitor de Log para localizar e atualizar informações sobre transações replicadas em um banco de dados publicado. O procedimento armazenado sp_replshowcmds (Transact-SQL) é usado para solucionar determinados tipos de problemas com replicação transacional.

Esse erro é gerado nas seguintes circunstâncias:

  • Se o Agente de Leitor de Log de um banco de dados publicado estiver sendo executado e um segundo Agente de Leitor de Log 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_replcmds ou sp_replshowcmds no mesmo banco de dados, o erro será gerado no aplicativo em que o procedimento armazenado foi executado (como sqlcmd).

  • Se nenhum Agente de Leitor de Log estiver sendo executado para um banco de dados publicado, um usuário executar sp_repldone, sp_replcmds ou sp_replshowcmds e a conexão na qual o procedimento foi executado não for encerrada, o erro será gerado quando o Agente de Leitor de Log 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 Agente de Leitor de Log seja iniciado sem erros, não será necessário concluir as etapas restantes.

  • Verifique o histórico do Agente de Leitor de Log em relação a qualquer outro erro que poderia estar contribuindo com esse erro. Para obter informações sobre como exibir detalhes sobre o status do agente e sobre o erro no Replication Monitor, consulte Exibir informações e executar tarefas para os agentes associados a uma publicação (Replication Monitor).

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

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

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

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

  • 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.

Consulte também

Referência

Replication Agente de Leitor de Log

Conceitos

Referência de erros e eventos (replicação)