Solucionar problemas de configuración de grupos de disponibilidad AlwaysOn (SQL Server)

En este tema se proporciona información para ayudarle a solucionar los problemas más habituales relacionados con la configuración de las instancias de servidor para Grupos de disponibilidad AlwaysOn. Entre los problemas de configuración más habituales se incluyen los siguientes: Grupos de disponibilidad AlwaysOn está deshabilitado, las cuentas no están configuradas correctamente, el extremo de creación de reflejo de la base de datos no existe, el extremo no es accesible (error 1418 de SQL Server), el acceso de red no existe y un comando de unión genera el error 35250 de SQL Server.

[!NOTA]

Asegúrese de que cumple los requisitos previos de Grupos de disponibilidad AlwaysOn. Para obtener más información, vea Requisitos previos, restricciones y recomendaciones para Grupos de disponibilidad AlwaysOn (SQL Server).

En este tema:

Sección

Descripción

Los grupos de disponibilidad AlwaysOn no están habilitados

Si una instancia de SQL Server no está habilitada para Grupos de disponibilidad AlwaysOn, la instancia no admite la creación de grupos de disponibilidad y no puede hospedar réplicas de disponibilidad .

Cuentas

Analiza los requisitos para configurar correctamente las cuentas en que se ejecuta SQL Server.

Extremos

Analiza cómo diagnosticar problemas relativos al extremo de creación de reflejo de la base de datos de una instancia de servidor.

Nombre del sistema

Resume las alternativas para especificar el nombre del sistema de una instancia de servidor en una dirección URL del extremo.

Acceso de red

Documenta el requisito de que cada instancia de servidor que hospeda una réplica de disponibilidad debe tener acceso al puerto de cada una de las demás instancias de servidor en TCP.

Acceso al extremo (error 1418 de SQL Server)

Contiene información sobre este mensaje de error de SQL Server.

Error de unión de la base de datos (error 35250 de SQL Server)

Analiza las posibles causas y la resolución de un error al unir las bases de datos secundarias a un grupo de disponibilidad porque la conexión a la réplica principal no está activa.

El enrutamiento de solo lectura no funciona correctamente

Tareas relacionadas

Contiene una lista de temas orientados a tareas de los Libros en pantalla de SQL Server 2012 que son particularmente especialmente pertinentes para solucionar problemas de configuración de un grupo de disponibilidad.

Contenido relacionado

Contiene una lista de recursos importantes externos a los Libros en pantalla de SQL Server.

Los grupos de disponibilidad AlwaysOn no están habilitados

La característica Grupos de disponibilidad AlwaysOn debe estar habilitada en cada instancia de SQL Server 2012. Para obtener más información, vea Habilitar y deshabilitar grupos de disponibilidad de AlwaysOn (SQL Server).

Cuentas

Las cuentas en las que se ejecuta SQL Server deben estar configuradas correctamente.

  1. ¿Tienen las cuentas los permisos adecuados?

    1. Si los asociados se ejecutan como la misma cuenta de usuario de dominio, automáticamente existen los inicios de sesión de usuario correctos en ambas bases de datos master. Esto simplifica la configuración de seguridad de la base de datos y es recomendable su aplicación.

    2. Si dos instancias del servidor se ejecutan como cuentas diferentes, el inicio de sesión en cada cuenta debe crearse en la base de datos maestra en la instancia del servidor remoto, y se deben conceder a ese inicio de sesión permisos CONNECT para conectarse al extremo de creación de reflejo de la base de datos de esa instancia del servidor. Para obtener más información, vea Configurar cuentas de inicio de sesión para la creación de reflejo de la base de datos o grupos de disponibilidad de AlwaysOn (SQL Server).

  2. Si SQL Server se ejecuta como una cuenta integrada, (como sistema local, servicio local o servicio de red), o una cuenta que no es de dominio, debe utilizar certificados para la autenticación de extremos. Si las cuentas de servicio utilizan cuentas de dominio en el mismo dominio, puede elegir conceder acceso CONNECT para cada cuenta de servicio en todas las ubicaciones de réplica o puede utilizar certificados. Para obtener más información, vea Usar certificados para un extremo de creación de reflejo de la base de datos (Transact-SQL).

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Extremos

Los extremos deben estar configurados correctamente.

  1. Asegúrese de que cada instancia de SQL Server que vaya a hospedar una réplica de disponibilidad (cada ubicación de réplica) tiene un extremo de creación de reflejo de la base de datos. Para determinar si existe un extremo de creación de reflejo de la base de datos en una instancia de servidor dada, utilice la vista de catálogo sys.database_mirroring_endpoints. Para obtener más información, vea Crear un extremo de reflejo de la base de datos para la autenticación de Windows (Transact-SQL) o Permitir que un extremo de creación de reflejo de la base de datos utilice certificados para las conexiones salientes (Transact-SQL).

  2. Compruebe que los números de puerto son correctos.

    Para identificar el puerto asociado actualmente al extremo de creación de reflejo de la base de datos de una instancia de servidor, utilice la siguiente instrucción Transact-SQL:

    SELECT type_desc, port FROM sys.tcp_endpoints;
    GO
    
  3. En caso de problemas de configuración de Grupos de disponibilidad AlwaysOn difíciles de explicar, se recomienda que compruebe cada una de las instancias de servidor para determinar si escuchan en los puertos correctos. Para obtener más información acerca de la comprobación de disponibilidad de puertos, vea MSSQLSERVER_1418.

  4. Asegúrese de que se han iniciado los extremos (STATE=STARTED). En cada una de las instancias de servidor, utilice la siguiente instrucción Transact-SQL:

    SELECT state_desc FROM sys.database_mirroring_endpoints
    

    Para obtener más información acerca de la columna state_desc, vea sys.database_mirroring_endpoints (Transact-SQL).

    Para iniciar un extremo, utilice la siguiente instrucción Transact-SQL:

    ALTER ENDPOINT Endpoint_Mirroring 
    STATE = STARTED 
    AS TCP (LISTENER_PORT = <port_number>)
    FOR database_mirroring (ROLE = ALL);
    GO
    

    Para obtener más información, vea ALTER ENDPOINT (Transact-SQL).

  5. Asegúrese de que el inicio de sesión del otro servidor dispone de permiso CONNECT. Para determinar quién tiene permiso CONNECT para un extremo, utilice la siguiente instrucción Transact-SQL en cada instancia de servidor:

    SELECT 'Metadata Check';
    SELECT EP.name, SP.STATE, 
       CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
          AS GRANTOR, 
       SP.TYPE AS PERMISSION,
       CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
          AS GRANTEE 
       FROM sys.server_permissions SP , sys.endpoints EP
       WHERE SP.major_id = EP.endpoint_id
       ORDER BY Permission,grantor, grantee; 
    GO
    

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Nombre del sistema

Como nombre del sistema de una instancia de servidor en una dirección URL del extremo, se puede utilizar cualquier nombre que identifique el sistema de forma inequívoca. La dirección del sistema puede ser un nombre del sistema (si los sistemas se encuentran en el mismo dominio), un nombre de dominio completo o una dirección IP (de preferencia, una dirección IP estática). Se garantiza que el uso de un nombre de dominio completo funciona correctamente. Para obtener más información, vea Especificar la dirección URL del extremo al agregar o modificar una réplica de disponibilidad (SQL Server).

Acceso de red

Cada instancia de servidor que hospeda una réplica de disponibilidad debe tener acceso al puerto de cada una de las demás instancias de servidor en TCP. Esto es especialmente importante si las instancias de servidor están en distintos dominios que no confían unos en otros (dominios que no son de confianza).

Acceso al extremo (error 1418 de SQL Server)

Este mensaje de SQL Server indica que la dirección de red del servidor especificada en la dirección URL del extremo no se encuentra o no existe, y recomienda que se compruebe el nombre de dirección de red y se vuelva a emitir el comando. Para obtener más información, vea MSSQLSERVER_1418.

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Error de unión de la base de datos (error 35250 de SQL Server)

En esta sección se analiza las posibles causas y la resolución de un error al unir las bases de datos secundarias al grupo de disponibilidad porque la conexión a la réplica principal no está activa.

Solución:

  1. Compruebe la configuración de firewall para ver si permite la comunicación de puerto del extremo entre las instancias de servidor que hospedan la réplica principal y la réplica secundaria (puerto 5022 de forma predeterminada).

  2. Compruebe si la cuenta de servicio de red tiene permiso de conexión para el extremo.

El enrutamiento de solo lectura no funciona correctamente

Compruebe los siguientes valores de configuración y corríjalos si es necesario.

     

En…

Acción

Comentarios

Vínculo

Casilla

Réplica principal actual

Asegúrese de que el agente de escucha del grupo de disponibilidad está en línea.

Para comprobar si el agente de escucha está en línea:

SELECT * FROM sys.dm_tcp_listener_states;

Para reiniciar un agente de escucha sin conexión:

ALTER AVAILABILITY GROUP myAG RESTART LISTENER 'myAG_Listener';

sys.dm_tcp_listener_states (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

Casilla

Réplica principal actual

Asegúrese de que READ_ONLY_ROUTING_LIST contiene solo instancias de servidor que hospedan una réplica secundaria legible.

  • Para identificar réplicas secundarias legibles:

    sys.availability_replicas (columna secondary_role_allow_connections_desc)

  • Para ver una lista de enrutamiento de solo lectura:

    sys.availability_read_only_routing_lists

  • Para cambiar una lista de enrutamiento de solo lectura:

    ALTER AVAILABILITY GROUP

sys.availability_replicas (Transact-SQL)

sys.availability_read_only_routing_lists (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

Casilla

Todas las réplicas de read_only_routing_list

Asegúrese de que el firewall de Windows no está bloqueando el puerto de READ_ONLY_ROUTING_URL.

Configurar Firewall de Windows para el acceso al motor de base de datos

Casilla

Todas las réplicas de read_only_routing_list

En el Administrador de configuración SQL Server, compruebe lo siguiente:

  • La conectividad remota de SQL Server está habilitada.

  • TCP/IP está habilitado.

  • Las direcciones IP están configuradas correctamente.

Ver o cambiar propiedades del servidor

Configurar un servidor para que escuche en un puerto TCP específico (Administrador de configuración de SQL Server)

Casilla

Todas las réplicas de read_only_routing_list

Asegúrese de que READ_ONLY_ROUTING_URL (TCP://system-address:port) contiene el nombre de dominio completo (FQDN) y el número de puerto correctos.

Calcular read_only_routing_url para AlwaysOn

sys.availability_replicas (Transact-SQL)

ALTER AVAILABILITY GROUP (Transact-SQL)

Casilla

Sistema cliente

Compruebe que el controlador cliente admite el enrutamiento de solo lectura.

Conectividad de cliente de AlwaysOn (SQL Server)

Icono de flecha usado con el vínculo Volver al principioArriba

Tareas relacionadas

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Contenido relacionado

Icono de flecha usado con el vínculo Volver al principio[Arriba]

Vea también

Conceptos

Seguridad de transporte para la creación de reflejo de la base de datos y grupos de disponibilidad AlwaysOn (SQL Server)

Requisitos previos, restricciones y recomendaciones para Grupos de disponibilidad AlwaysOn (SQL Server)

Otros recursos

Configuración de red de cliente