Compartir vía


MSSQL_ENG018752

Se aplica a: SQL Server Azure SQL Managed Instance

Detalles del mensaje

Attribute Valor
Nombre del producto SQL Server
Id. de evento 18752
Origen de eventos 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) solamente pueden conectarse a la 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_replcmdso sp_replshowcmds. Los procedimientos almacenados sp_repldone (Transact-SQL) y sp_replcmds (Transact-SQL) son procedimientos almacenados utilizados por el Agente de registro del Log Reader para buscar y actualizar información sobre las transacciones replicadas en una base de datos publicada. El procedimiento almacenado sp_replshowcmds (Transact-SQL) se usa para solucionar determinados 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_replcmdso 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_replcmdso 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 sobre la visualización del estado y los errores en Monitor de replicación, vea Visualización de información y realización de tareas mediante el Monitor de replicación.

  • Compruebe la salida de sp_who (Transact-SQL) para obtener números de identificación de procesos específicos (SPID) conectados a la base de datos publicada. Cierre las conexiones que puedan haber ejecutado sp_repldone, sp_replcmdso 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 Agente SQL Server (desconectarlo o en línea en un clúster) en el distribuidor. Si existe la posibilidad de que un trabajo programado haya ejecutado sp_repldone, sp_replcmds o sp_replshowcmds desde cualquier otra instancia de SQL Server, reinicie también el Agente SQL Server para 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 de la base de datos de publicación y, a continuación, reinicie el Agente de registro del Log Reader.

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