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.
¿Tienen las cuentas los permisos adecuados?
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.
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).
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).
[Arriba]
Extremos
Los extremos deben estar configurados correctamente.
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).
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
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.
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).
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
[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.
[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:
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).
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 |
---|---|---|---|---|
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:
Para reiniciar un agente de escucha sin conexión:
|
||
Réplica principal actual |
Asegúrese de que READ_ONLY_ROUTING_LIST contiene solo instancias de servidor que hospedan una réplica secundaria legible. |
|
sys.availability_replicas (Transact-SQL) |
|
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 |
|
Todas las réplicas de read_only_routing_list |
En el Administrador de configuración SQL Server, compruebe lo siguiente:
|
— |
||
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 |
|
Sistema cliente |
Compruebe que el controlador cliente admite el enrutamiento de solo lectura. |
— |
Arriba
Tareas relacionadas
Creación y configuración de grupos de disponibilidad (SQL Server)
Crear un extremo de reflejo de la base de datos para la autenticación de Windows (Transact-SQL)
Preparar manualmente una base de datos secundaria para un grupo de disponibilidad (SQL Server)
[Arriba]
Contenido relacionado
Ver eventos y registros para un clúster de conmutación por error
Blog del equipo de AlwaysOn de SQL Server: el blog del equipo de AlwaysOn oficial de SQL Server
[Arriba]