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 Log Reader Agent ou um procedimento relacionado ao registro em 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 registro em 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 Log Reader Agent ou de executar outro procedimento relacionado ao registro em 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 Log Reader Agent 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 de transação.
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 Log Reader Agent 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 Log Reader Agent 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 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 sobre o estado do agente e sobre o erro no Replication Monitor, consulte Como exibir informações e executar tarefas para os agentes associados com 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 Log Reader Agent. Para obter mais informações, consulte Como iniciar e parar um Replication Agent (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 Iniciando, parando e pausando o serviço do 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 persistir, 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. Para obter mais informações, consulte Agentes de replicação (Solucionando problemas).
Consulte também