MSSQL_ENG018752
Detalles del mensaje
Nombre del producto |
SQL Server |
Versión del producto |
10.0 |
Número de compilación del producto |
|
Identificador del evento |
18752 |
Origen del evento |
MSSQLSERVER |
Componente |
Motor de base de datos de SQL Server |
Nombre simbólico |
|
Texto del mensaje |
El Agente de registro del LOG y los procedimientos relacionados con el registro (sp_repldone, sp_replcmds y sp_replshowcmds) solo pueden conectarse a una base de datos de uno en uno. Si ejecutó un procedimiento relacionado con el registro, quite la conexión mediante la cual se ejecutó el procedimiento o ejecute sp_replflush en esa conexión antes de iniciar el Agente de registro del LOG o de ejecutar otro procedimiento relacionado con el registro. |
Explicación
Más de una conexión actual intenta ejecutar uno de los siguientes procedimientos: sp_repldone, sp_replcmds o sp_replshowcmds. El Agente de registro del LOG utiliza los procedimientos almacenados sp_repldone (Transact-SQL) y sp_replcmds (Transact-SQL) para buscar y actualizar información sobre transacciones replicadas en una base de datos publicada. El procedimiento almacenado sp_replshowcmds (Transact-SQL) se utiliza para resolver ciertos tipos de problemas con la replicación transaccional.
Este error se produce bajo las siguientes circunstancias:
Si se está ejecutando el Agente de registro del LOG en una base de datos publicada y un segundo Agente de registro del LOG intenta ejecutarse en la misma base de datos, se produce el error en el segundo agente y aparece en el historial del agente.
En una situación en la que parece haber varios agentes, es posible que uno de ellos sea el resultado de un proceso huérfano.
Si se inicia el Agente de registro del LOG en una base de datos publicada y un usuario ejecuta sp_repldone, sp_replcmds o sp_replshowcmds en la misma base de datos, se produce el error en la aplicación donde se ejecutó el procedimiento almacenado (por ejemplo sqlcmd).
Si no se está ejecutando el Agente de registro del LOG en una base de datos publicada y un usuario ejecuta sp_repldone, sp_replcmds o sp_replshowcmds y, a continuación, no cierra la conexión en la que se ejecutó el procedimiento, se produce el error cuando el Agente de registro del LOG intenta conectarse a la base de datos.
Acción del usuario
Los siguientes pasos pueden ayudar a resolver el problema. Si un paso permite al Agente de registro del LOG iniciarse sin errores, no es necesario completar los pasos restantes.
Compruebe en el historial del Agente de registro del LOG otros errores que podrían contribuir a este error. Para obtener información acerca de cómo ver el estado del agente y los datos de error en el Monitor de replicación, vea Ver información y realizar tareas para los agentes asociados a una publicación (Monitor de replicación).
Compruebe en el resultado de sp_who (Transact-SQL) los números de identificación de proceso específico (SPID) que estén conectados a la base de datos publicada. Cierre las conexiones que puedan haber ejecutado sp_repldone, sp_replcmds o sp_replshowcmds.
Reinicie el Agente de registro del LOG. Para obtener más información, vea Iniciar y detener un agente de replicación (SQL Server Management Studio).
Reinicie el servicio del Agente SQL Server (déjelo sin conexión o conéctelo en un clúster) en el distribuidor. Si existe la posibilidad de que un trabajo programado pueda ejecutar sp_repldone, sp_replcmds o sp_replshowcmds desde cualquier otra instancia de SQL Server, reinicie también el Agente SQL Server en esas instancias. Para obtener más información, vea Iniciar, detener o pausar el servicio del Agente SQL Server.
Ejecute sp_replflush (Transact-SQL) en el publicador en la base de datos de publicaciones y, a continuación, reinicie el Agente de registro del LOG.
Si el error persiste, aumente el registro del agente y especifique un archivo de salida para el registro. Dependiendo del contexto del error, esto puede proporcionar los pasos que conducen al error o a mensajes de error adicionales.
Vea también
Referencia
Agente de registro del LOG de replicación