Configuración de un grupo de disponibilidad de Always On para realizar una conmutación por error cuando el archivo de datos de la base de datos no está disponible
Resumen
En un grupo de disponibilidad SQL Server Always On, la detección de estado de nivel de base de datos solo puede realizar una conmutación por error si el error (error de disco o similar) se produce en el registro de transacciones de base de datos.
Si el error se produce en el archivo de datos, SQL Server solo envía el aviso de error a un clúster de conmutación por error de Windows Server (WSFC) y se basa en él para tomar la decisión correcta en función de la configuración de la directiva.
Para configurar un grupo de disponibilidad de Always On para realizar una conmutación por error cuando se produzcan errores 823 y otros, use uno de los procedimientos siguientes:
Configuración del Administrador de clústeres de conmutación por error
Este procedimiento configura la directiva WSFC para provocar una conmutación por error a uno de los posibles propietarios en lugar de intentar reiniciar el rol en el nodo principal actual.
Abra el Administrador de clústeres de conmutación por error.
Expanda el clúster y seleccione Roles.
Haga clic con el botón derecho en el rol de grupo de disponibilidad y seleccioneDirectivas depropiedades>.
Establezca el valor de Reinicios máximos en el período especificado en0.
Active la casilla Si se produce un error en todos los intentos de reinicio, empiece a reiniciar de nuevo después del período especificado (hh:mm) y seleccione Aceptar.
Asegúrese de que ambos nodos son posibles propietarios y propietarios preferidos.
Opción de configuración personalizada
Este procedimiento proporciona un ejemplo de cómo usar el mecanismo de alerta disponible en SQL Server y Agente SQL Server para detectar el error y realizar una conmutación por error.
En SQL Server Management Studio, expanda Agente SQL Server, haga clic con el botón derecho en Alertas y seleccione Nueva alerta....
Especifique un valor para Nombre, seleccione SQL Server alerta de evento para Tipo, especifique el valor de Número de error en 823 o cualquier otro error deseado según la lista y, a continuación, seleccione Aceptar.
Seleccione Respuesta, seleccione Ejecutar trabajo, seleccione el trabajo que desee y, a continuación, seleccione Aceptar.
En el cuadro de diálogo Propiedades del paso de trabajo, especifique un valor para Nombre del paso, seleccione Sistema operativo (CmdExec) en Tipo y, a continuación, seleccione Agente SQL Server cuenta de servicio para Ejecutar como.
Escriba el siguiente comando sqlcmd de conmutación por error:
sqlcmd -S <SecondaryReplicaName> -U SQLADMIN -P <YourPassword> -Q "ALTER Availability Group <AGName> Failover"
Nota:
<SecondaryReplicaName>
,<YourPassword>
y<AGName>
son marcadores de posición. Debe cambiarlo para que coincida con los entornos. Este script es un ejemplo de referencia. Un script completo debe realizar otras comprobaciones antes de realizar una conmutación por error.