Solución de problemas de SQL Server Always On
Este artículo le ayuda a resolver el problema común sobre la configuración de Always On en SQL Server.
Nota:
Para obtener un paseo guiado por la experiencia de este artículo, consulte Solución de problemas SQL Server Always On.
Versión original del producto: SQL Server 2012 Enterprise, SQL Server 2014 Enterprise, SQL Server 2016 Enterprise
Número de KB original: 10179
Notas importantes
Los datos CSS de Microsoft indican que un porcentaje significativo de los problemas de los clientes a menudo se aborda previamente en una CU publicada, pero no se aplica de forma proactiva y, por lo tanto, recomienda la instalación proactiva y continua de las CPU a medida que estén disponibles. Para obtener más información, vea Anuncio de actualizaciones del modelo de mantenimiento incremental (ISM) de SQL Server.
Para comprobar las CPU más recientes que pueden estar disponibles para su versión, consulte How to determine the version, edition and update level of SQL Server and its components (Cómo determinar el nivel de versión, edición y actualización de SQL Server y sus componentes).
Puede ver Herramientas útiles para la solución de problemas y supervisión Always On grupos de disponibilidad en Always On Guía de solución de problemas y supervisión de grupos de disponibilidad para obtener más información sobre las herramientas que puede usar para diagnosticar diferentes tipos de problemas y para supervisar grupos de disponibilidad. La guía también tiene escenarios adicionales que pueden no tratarse en esta guía guiada.
El nodo primario para la documentación de Always On grupos de disponibilidad y proporciona una referencia única para varias preguntas, consulte Always On grupos de disponibilidad (SQL Server).
Necesito punteros para configurar y configurar Always On grupos de disponibilidad
Si busca documentación sobre cómo configurar Always On configuración, consulte los documentos siguientes:
Introducción con grupos de disponibilidad de Always On (SQL Server): el documento proporciona respuestas a muchas preguntas que puede tener sobre los grupos de disponibilidad y la configuración. Seguir todos los pasos de este artículo y revisar los requisitos previos, las restricciones y las recomendaciones para Always On grupos de disponibilidad (SQL Server) ayudará a evitar muchos problemas que se pueden encontrar con la configuración y el mantenimiento de grupos de disponibilidad en su entorno.
Recursos adicionales
- Paso a paso: creación de un grupo de disponibilidad Always On de SQL Server 2012
- Guías de arquitectura de Always On
- Vínculo externo: grupos de disponibilidad de SQL Server Always On
Si esta información no es útil, consulte Más información sobre Always On grupos de disponibilidad.
Tengo problemas para configurar Always On grupos de disponibilidad
Los problemas de configuración típicos incluyen Always On los grupos de disponibilidad están deshabilitados, las cuentas están configuradas incorrectamente, el punto de conexión de creación de reflejo de la base de datos no existe, el punto de conexión es inaccesible (SQL Server error 1418), el acceso a la red no existe y se produce un error en un comando de base de datos de combinación (SQL Server error 35250). Revise el siguiente documento para obtener ayuda sobre la solución de estos problemas:
Solución de problemas de configuración de grupos de disponibilidad de Always On (SQL Server)
Vínculo adicional: Corrección: Error 41009 al intentar crear varios grupos de disponibilidad
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
Tengo problemas con la configuración del agente de escucha (19471, 19476 y otros errores)
Uno de los problemas de configuración más comunes que encuentran los clientes es la creación de agentes de escucha del grupo de disponibilidad. Los errores son similares a los siguientes:
-
Msg 19471, Level 16, State 0, Line 2El clúster de WSFC no pudo poner en línea el recurso Nombre de red con el nombre DNS "". Es posible que el nombre DNS se haya tomado o que tenga un conflicto con los servicios de nombres existentes, o que el servicio de clúster de WSFC no se esté ejecutando o que no se pueda acceder a él. Use un nombre DNS diferente para resolver conflictos de nombres o compruebe el registro de clúster de WSFC para obtener más información.
-
Mensaje 19476, Nivel 16, Estado 4, Línea 2El intento de crear el nombre de red y la dirección IP para el agente de escucha no se pudo realizar. Es posible que el servicio WSFC no se esté ejecutando o que no sea accesible en su estado actual, o que los valores proporcionados para el nombre de red y la dirección IP sean incorrectos. Compruebe el estado del clúster de WSFC y valide el nombre de red y la dirección IP con el administrador de red.
La mayoría de las veces, el error de creación del agente de escucha que produce los mensajes anteriores se debe a la falta de permisos para que el objeto de nombre de clúster (CNO) de Active Directory cree y lea el objeto de equipo de escucha. Para solucionar este problema, consulte los artículos siguientes:
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
La conmutación automática por error no funciona según lo esperado
Si observa que la conmutación por error automática no funciona según lo esperado durante las pruebas o en producción, consulte Solución de problemas de conmutación por error automática en entornos de Always On de SQL Server 2012.
La configuración incorrecta de Errores máximos en el período especificado es una de las principales causas de que la conmutación por error principal no se realice automáticamente en la secundaria. El valor predeterminado para esta configuración es N-1, donde N es el número de réplicas. Para obtener más información, consulte Límite máximo de errores del clúster de conmutación por error (grupo).
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
Tengo problemas para conectarme a grupos de disponibilidad de Always On
Después de configurar el agente de escucha del grupo de disponibilidad para un grupo de disponibilidad de Always On en SQL Server 2012, es posible que no pueda hacer ping al agente de escucha ni conectarse a él desde una aplicación. Puede recibir un error similar al siguiente:
Sqlcmd: Error: Microsoft SQL Native Client: tiempo de espera de inicio de sesión expirado.
Para solucionar este problema y errores similares, revise lo siguiente:
- Error de tiempo de espera y no se puede conectar a un agente de escucha del grupo de disponibilidad de SQL Server 2012 Always On en un entorno de varias subredes
- Tiempos de espera de conexión en el grupo de disponibilidad de varias subredes
Vínculos de más información:
- Una actualización presenta compatibilidad con las características de Always On de SQL Server 2012 o una versión posterior para the.NET Framework 3.5 SP1
- SQL Server agrupación en clústeres de varias subredes (SQL Server)
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
Tengo problemas para configurar Always On grupos de disponibilidad en mi máquina virtual de Azure (IaaS)
Muchos problemas relacionados con Always On se producen debido a una configuración incorrecta del agente de escucha. Si tiene problemas de conexión con el agente de escucha,
Asegúrese de leer todas las limitaciones del agente de escucha de ILB y de seguir todos los pasos documentados en el artículo siguiente prestando especial atención a la configuración de dependencias, la dirección IP y otros parámetros del script de PowerShell.
Si no está seguro, es posible que desee eliminar y volver a crear el agente de escucha según el documento anterior.
Si ha movido recientemente la máquina virtual a otro servicio o si las direcciones IP han cambiado, debe actualizar el valor del recurso de dirección IP para reflejar la nueva dirección y volver a crear el punto de conexión con equilibrio de carga para el grupo de disponibilidad. Puede actualizar la dirección IP mediante los
Get
comandos oSet
como se indica a continuación:Get-ClusterResource "IPResourceName" | Set-ClusterParameter -name Address -value "w.x.y.z"
Documentos recomendados:
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
La conmutación por error de principal a secundaria tarda mucho tiempo o viceversa
Después de una conmutación por error automática o una conmutación por error manual planeada sin pérdida de datos en un grupo de disponibilidad, es posible que el tiempo de conmutación por error supere el objetivo de tiempo de recuperación (RTO). Para solucionar los problemas de las causas y las posibles resoluciones, consulte Solución de problemas: RTO superado por grupo de disponibilidad.
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
Los cambios en la réplica principal no se reflejan o tardan en replicarse en la réplica secundaria.
Es posible que observe que los cambios en la réplica principal no se propagan a la secundaria de forma oportuna. Para solucionar estos problemas y resolverlos, pruebe lo siguiente:
Para los entornos de SQL Server 2012 y SQL Server 2014, consulte FIX: Slow synchronization when disks have different sector sizes for primary and secondary replica log files in SQL Server AG and Logshipping environments (CORRECCIÓN: sincronización lenta cuando los discos tienen tamaños de sector diferentes para los archivos de registro de réplica principal y secundaria en SQL Server ag y logshipping).
Compruebe si los nodos secundarios están en estado Pausado en el administrador del clúster.
Consulte Solución de problemas: los cambios en la réplica principal no se reflejan en la réplica secundaria.
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
Cómo administrar el tamaño del registro de transacciones para las bases de datos de mi grupo de disponibilidad
Puede reducir los tamaños del registro de transacciones mediante la configuración de copias de seguridad regulares en servidores principales o secundarios.
Revise los temas siguientes para obtener información adicional:
- Descarga de copias de seguridad admitidas en réplicas secundarias de un grupo de disponibilidad
- Realizar copias de seguridad del registro de transacciones mediante Always On grupo de disponibilidad Read-Only réplicas secundarias: parte 1
Si esta información no es útil, consulte Más información sobre Always On grupos de disponibilidad.
Servidores principales o secundarios afectados en el estado de resolución o experimenta conmutaciones por error inesperadas
Compruebe los registros de eventos del sistema y la aplicación en busca de problemas de hardware y otros errores y trabaje con el proveedor para corregirlos.
Si usa máquinas virtuales, compruebe sus knowledge base para ver si hay algún problema notificado recientemente que pueda contribuir al problema. Por ejemplo, la pérdida de paquetes grandes en el nivel de sistema operativo invitado en el VMXNET3 vNIC en ESXi (2039495) ha causado problemas con la configuración del grupo de disponibilidad en algunos casos.
Más información:
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
No se pueden poner en línea los recursos
Compruebe si las bases de datos tardan mucho tiempo en recuperarse; para ello, revise los mensajes del registro de errores de SQL.
Si el problema sigue existiendo, consulte Más información sobre Always On grupos de disponibilidad.
Preguntas más frecuentes
¿Es posible tener dos agentes de escucha para un grupo de disponibilidad?
Sí, puede configurar varios agentes de escucha para el mismo grupo de disponibilidad. Consulte Creación de varios agentes de escucha para el mismo grupo de disponibilidad (Goden Yao).
¿Es posible tener una tarjeta NIC independiente para el tráfico alwayson y la conectividad de cliente?
Sí, puede tener una tarjeta NIC dedicada para Always On tráfico. Consulte Configuración del grupo de disponibilidad para comunicarse en una red dedicada.
¿Qué ediciones admiten Always On instancias de clúster de conmutación por error?
Este tema de SQL Server Libros en pantalla tiene más información: Ediciones y características admitidas para SQL Server 2016.
¿Cómo recuperarse en caso de un error en todos los nodos del clúster?
Consulte Recuperación ante desastres de WSFC mediante cuórum forzado (SQL Server).
¿Dónde puedo encontrar información sobre la compatibilidad con transacciones distribuidas en configuraciones de grupo de disponibilidad?
Consulte Transacciones: grupos de disponibilidad y creación de reflejo de la base de datos.
¿Cómo actualizar las configuraciones de Always On?
Consulte Actualización de Always On instancias de réplica de grupo de disponibilidad.
¿Cómo agregar una base de datos habilitada para TDE (cifrado de datos transparente) a la configuración del grupo de disponibilidad?
Para agregar una base de datos habilitada para TDE al grupo de disponibilidad, consulte Configuración de Always On para una base de datos de TDE.
¿Cómo configurar alertas para comprobar si la secundaria está retrasada detrás de la principal?
Puede usar el siguiente script:
SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.database_id AS database_id, is_ag_replica_local = CASE WHEN ar_state.is_local = 1 THEN N'LOCAL' ELSE 'REMOTE' END, ag_replica_role = CASE WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED' ELSE ar_state.role_desc END, dr_state.last_hardened_lsn, dr_state.last_hardened_time, datediff(s,last_hardened_time, getdate()) AS 'seconds behind primary' FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id) JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id) JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
¿Cómo recibir una alerta si el estado de la base de datos no está sincronizado?
Puede usar el siguiente script:
SELECT ag.name AS ag_name, ar.replica_server_name AS ag_replica_server, dr_state.database_id AS database_id, is_ag_replica_local = CASE WHEN ar_state.is_local = 1 THEN N'LOCAL' ELSE 'REMOTE' END, ag_replica_role = CASE WHEN ar_state.role_desc IS NULL THEN N'DISCONNECTED' ELSE ar_state.role_desc END, ar_state.connected_state_desc, ar.availability_mode_desc, dr_state.synchronization_state_desc FROM (( sys.availability_groups AS ag JOIN sys.availability_replicas AS ar ON ag.group_id = ar.group_id ) JOIN sys.dm_hadr_availability_replica_states AS ar_state ON ar.replica_id = ar_state.replica_id) JOIN sys.dm_hadr_database_replica_states dr_state ON ag.group_id = dr_state.group_id AND dr_state.replica_id = ar_state.replica_id
También puede revisar los vínculos siguientes para obtener métodos adicionales para supervisar Always On grupos: