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