Las bases de datos reflejadas se desconectan después de reiniciar el reflejo de la base de datos en SQL Server

Este artículo le ayuda a resolver el problema en el que las bases de datos reflejadas se dejan en un estado Desconectado o En recuperación .

Versión del producto original: SQL Server
Número de KB original: 2490051

Síntoma

Imagine la siguiente situación:

  • Tiene un equipo que ejecuta una instancia secundaria de Microsoft SQL Server en un reflejo de base de datos de dos servidores.

  • El uso de CPU alcanza el 100 % en el equipo y no se puede detener el servicio de SQL Server mediante SQL Server Herramientas de administración.

  • Para finalizar el proceso de la instancia secundaria de SQL Server, use el Administrador de tareas.

  • Reinicie la instancia secundaria de SQL Server.

En este escenario, todas las bases de datos reflejadas están en estado Desconectado o En recuperación . Además, se registra un mensaje de error similar al siguiente en el registro de errores de SQL Server para cada base de datos:

Omitir la recuperación de la base de datos "Nombre de base de datos" porque está marcada como una base de datos de creación de reflejo de base de datos inaccesible. Existe un problema con la sesión de creación de reflejo. La sesión carece de cuórum o los vínculos de comunicaciones se interrumpen debido a problemas con los vínculos, la configuración del punto de conexión o los permisos (para la cuenta de servidor o el certificado de seguridad). Para obtener acceso a la base de datos, averigüe qué ha cambiado en la configuración de la sesión y deshaga el cambio.

Causa

Este problema se produce debido a problemas en los puntos de conexión de creación de reflejo de la base de datos de SQL Server.

Solución

Para resolver este problema, use los métodos siguientes. Si el primer método no resuelve el problema, use el segundo método.

Método 1

Recicle el punto de conexión en el reflejo de la base de datos. Para ello, siga estos pasos:

  1. En la base de datos principal, ejecute el siguiente script SQL para detener el punto de conexión:

    ALTER ENDPOINT <Endpoint Name> STATE=STOPPED
    
  2. Ejecute el siguiente script SQL para reiniciar el punto de conexión:

    ALTER ENDPOINT <Endpoint Name> STATE=STARTED
    

    Nota:

    Si la comunicación entre los puntos de conexión no se reinicia después de ejecutar los scripts, ejecute los scripts en la base de datos reflejada. Sin embargo, la base de datos puede entrar en un estado Suspendido después de hacerlo. Si se produce este problema, ejecute el siguiente script SQL:

    ALTER DATABASE <Database Name> SET PARTNER RESUME
    

Método 2

Elimine y vuelva a crear los puntos de conexión de creación de reflejo de la base de datos en ambos servidores.