Compartir a través de


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

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

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:

Vínculos de más información:

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)

  1. 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,

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

    2. Si no está seguro, es posible que desee eliminar y volver a crear el agente de escucha según el documento anterior.

  2. 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 o Set 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:

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:

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

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

  1. ¿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).

  2. ¿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.

  3. ¿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.

  4. ¿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).

  5. ¿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.

  6. ¿Cómo actualizar las configuraciones de Always On?

    Consulte Actualización de Always On instancias de réplica de grupo de disponibilidad.

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

  8. ¿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
    
  9. ¿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:

Más información sobre Always On grupos de disponibilidad