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.