Compartir por


ALTER AVAILABILITY GROUP (Transact-SQL)

Se aplica a:SQL Server

Modifica un grupo de disponibilidad AlwaysOn existente en SQL Server. La mayoría ALTER AVAILABILITY GROUP de los argumentos solo se admiten en la réplica principal actual. Sin embargo, los JOINargumentos , FAILOVERy FORCE_FAILOVER_ALLOW_DATA_LOSS solo se admiten en réplicas secundarias.

Convenciones de sintaxis de Transact-SQL

Sintaxis

ALTER AVAILABILITY GROUP group_name
  {
     SET ( <set_option_spec> )
   | ADD DATABASE database_name
   | REMOVE DATABASE database_name
   | ADD REPLICA ON <add_replica_spec>
   | MODIFY REPLICA ON <modify_replica_spec>
   | REMOVE REPLICA ON <server_instance>
   | JOIN
   | JOIN AVAILABILITY GROUP ON <add_availability_group_spec> [ , ...2 ]
   | MODIFY AVAILABILITY GROUP ON <modify_availability_group_spec> [ , ...2 ]
   | GRANT CREATE ANY DATABASE
   | DENY CREATE ANY DATABASE
   | FAILOVER
   | FORCE_FAILOVER_ALLOW_DATA_LOSS
   | ADD LISTENER 'dns_name' ( <add_listener_option> )
   | MODIFY LISTENER 'dns_name' ( <modify_listener_option> )
   | RESTART LISTENER 'dns_name'
   | REMOVE LISTENER 'dns_name'
   | OFFLINE
  }
[ ; ]

<set_option_spec> ::=
    AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY | SECONDARY | NONE }
  | FAILURE_CONDITION_LEVEL  = { 1 | 2 | 3 | 4 | 5 }
  | HEALTH_CHECK_TIMEOUT = milliseconds
  | DB_FAILOVER  = { ON | OFF }
  | DTC_SUPPORT  = { PER_DB | NONE }
  | REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = { integer }
  | ROLE = SECONDARY
  | CLUSTER_CONNECTION_OPTIONS = 'key_value_pairs> [ ;... ] '

<server_instance> ::=
 { 'system_name [ \instance_name ] ' | 'FCI_network_name [ \instance_name ] ' }

<add_replica_spec>::=
  <server_instance> WITH
    (
       ENDPOINT_URL = 'TCP://system-address:port' ,
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY } ,
       FAILOVER_MODE = { AUTOMATIC | MANUAL }
       [ , <add_replica_option> [ , ...n ] ]
    )

  <add_replica_option>::=
       SEEDING_MODE = { AUTOMATIC | MANUAL }
     | BACKUP_PRIORITY = n
     | SECONDARY_ROLE ( {
            [ ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } ]
        [ , ] [ READ_ONLY_ROUTING_URL = 'TCP://system-address:port' ]
     } )
     | PRIMARY_ROLE ( {
            [ ALLOW_CONNECTIONS = { READ_WRITE | ALL } ]
        [ , ] [ READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ , ...n ] ) | NONE } ]
        [ , ] [ READ_WRITE_ROUTING_URL = 'TCP://system-address:port' ]
     } )
     | SESSION_TIMEOUT = integer

<modify_replica_spec>::=
  <server_instance> WITH
    (
       ENDPOINT_URL = 'TCP://system-address:port'
     | AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
     | FAILOVER_MODE = { AUTOMATIC | MANUAL }
     | SEEDING_MODE = { AUTOMATIC | MANUAL }
     | BACKUP_PRIORITY = n
     | SECONDARY_ROLE ( {
          [ ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }  ]
        | [ READ_ONLY_ROUTING_URL = { 'TCP://system-address:port' | NONE } ]
          } )
     | PRIMARY_ROLE ( {
          [ ALLOW_CONNECTIONS = { READ_WRITE | ALL }   ]
        | [ READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ , ...n ] ) | NONE } ]
        | [ READ_WRITE_ROUTING_URL = { 'TCP://system-address:port' | NONE }  ]
          } )
     | SESSION_TIMEOUT = seconds
    )

<add_availability_group_spec>::=
 <ag_name> WITH
    (
       LISTENER_URL = 'TCP://system-address:port' ,
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT } ,
       FAILOVER_MODE = MANUAL ,
       SEEDING_MODE = { AUTOMATIC | MANUAL }
    )

<modify_availability_group_spec>::=
 <ag_name> WITH
    (
       LISTENER = 'TCP://system-address:port'
       | AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
       | SEEDING_MODE = { AUTOMATIC | MANUAL }
    )

<add_listener_option> ::=
   {
      WITH DHCP [ ON ( <network_subnet_option> ) ]
    | WITH IP ( { ( <ip_address_option> ) } [ , ...n ] ) [ , PORT = listener_port ]
   }

  <network_subnet_option> ::=
     'ipv4_address' , 'ipv4_mask'

  <ip_address_option> ::=
     {
        'four_part_ipv4_address' , 'four_part_ipv4_mask'
      | 'ipv6_address'
     }

<modify_listener_option>::=
    {
       ADD IP ( <ip_address_option> )
     | PORT = listener_port
     | REMOVE IP ( 'ipv4_address' | 'ipv6_address')
    }

Argumentos

group_name

Especifica el nombre del nuevo grupo de disponibilidad. group_name debe ser un identificador de SQL Server válido y debe ser único en todos los grupos de disponibilidad del clúster de WSFC.

AUTOMATED_BACKUP_PREFERENCE = { PRIMARIA | SECONDARY_ONLY| SECUNDARIA | NINGUNO }

Especifica una preferencia sobre cómo un trabajo de copia de seguridad evalúa la réplica principal al elegir dónde realizar copias de seguridad. Puede crear un script con un trabajo de copia de seguridad para que se tenga en cuenta la preferencia de copia de seguridad automatizada. Es importante entender que SQL Server no aplica la preferencia, por lo que las copias de seguridad ad hoc no resultan afectadas.

Solo se admite en la réplica principal.

Éstos son sus valores:

Primario

Especifica que las copias de seguridad siempre se producen en la réplica principal. Esta opción es útil si necesita características de copia de seguridad, como la creación de copias de seguridad diferenciales, que no se admiten cuando la copia de seguridad se ejecuta en una réplica secundaria.

Importante

Si tiene previsto usar el trasvase de registros para preparar las bases de datos secundarias para un grupo de disponibilidad, establezca la preferencia de copia de seguridad automatizada en Primary hasta que todas las bases de datos secundarias estén preparadas y unidas al grupo de disponibilidad.

SECONDARY_ONLY

Especifica que las copias de seguridad nunca se producen en la réplica principal. Si la réplica principal es la única réplica en línea, no se produce la copia de seguridad.

SECUNDARIO

Especifica que las copias de seguridad se producen en una réplica secundaria, excepto cuando la réplica principal es la única réplica en línea. En ese caso, la copia de seguridad se produce en la réplica principal. Este es el comportamiento predeterminado.

Ninguno

Especifica que, de acuerdo con sus preferencias, los trabajos de copia de seguridad omitan el rol de las réplicas de disponibilidad cuando la réplica realiza copias de seguridad. Tenga en cuenta que los trabajos de copia de seguridad pueden evaluar otros factores, como la prioridad de copia de seguridad de cada réplica de disponibilidad junto con su estado operativo y de conexión.

Importante

No hay ninguna aplicación de la AUTOMATED_BACKUP_PREFERENCE configuración. La interpretación de esta preferencia depende de la lógica, si existe, de que se scripte en trabajos de copia de seguridad para las bases de datos de un grupo de disponibilidad determinado. La configuración de preferencias de copia de seguridad automatizada no tiene ningún efecto en las copias de seguridad ad hoc. Para obtener más información, consulte Configuración de copias de seguridad en réplicas secundarias de un grupo de disponibilidad AlwaysOn.

Nota

Para ver la preferencia de copia de seguridad automatizada de un grupo de disponibilidad existente, seleccione la automated_backup_preference columna o automated_backup_preference_desc de la vista de catálogo de sys.availability_groups . Además, se puede usar sys.fn_hadr_backup_is_preferred_replica para determinar la réplica de copia de seguridad preferida. Esta función siempre devuelve 1 para al menos una de las réplicas, incluso cuando AUTOMATED_BACKUP_PREFERENCE = NONE.

FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }

Especifica qué condiciones de error desencadenan una conmutación automática por error de este grupo de disponibilidad. FAILURE_CONDITION_LEVEL se establece en el nivel de grupo, pero solo es relevante en las réplicas de disponibilidad configuradas para el modo de disponibilidad de confirmación sincrónica (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Además, las condiciones de error pueden desencadenar una conmutación automática por error solo si las réplicas principales y secundarias están configuradas para el modo de conmutación automática por error (FAILOVER_MODE = AUTOMATIC) y la réplica secundaria está sincronizada actualmente con la réplica principal.

Solo se admite en la réplica principal.

Los niveles de condición de error (1-5) abarcan desde el nivel menos restrictivo (1) al más restrictivo (5). Un nivel de condición dado abarca todos los niveles menos restrictivos. Así pues, el nivel de condición más estricto (el nivel 5) incluye los cuatro niveles de condición menos restrictivos (1-4), el nivel 4 incluye los niveles 1-3, y así sucesivamente. En la tabla siguiente se describe la condición de error que corresponde a cada nivel.

Nivel Condición de error
1 Especifica que se inicia una conmutación automática por error cuando se produce alguna de las siguientes acciones:

El servicio de SQL Server está inactivo.

La concesión del grupo de disponibilidad para conectarse al clúster de WSFC expira porque no ACK se recibe de la instancia del servidor. Para más información, vea Cómo funciona: tiempo de espera de concesión de Always On de SQL Server.
2 Especifica que se inicia una conmutación automática por error cuando se produce alguna de las siguientes acciones:

La instancia de SQL Server no se conecta al clúster y se supera el umbral especificado por HEALTH_CHECK_TIMEOUT el usuario del grupo de disponibilidad.

La réplica de disponibilidad tiene un estado de error.
3 Especifica que una conmutación automática por error se inicia en errores internos críticos de SQL Server, como bloqueos por subprocesos huérfanos, infracciones graves de acceso de escritura o demasiado volcado.

Este es el comportamiento predeterminado.
4 Especifica que una conmutación automática por error se inicia en errores internos moderados de SQL Server, como una condición persistente fuera de memoria en el grupo de recursos interno de SQL Server.
5 Especifica que se inicia una conmutación automática por error en las condiciones de error calificadas, entre las que se incluyen:

Se han agotado los subprocesos de trabajo del motor de SQL.

Detección de un interbloqueo irresoluble.

Nota

La falta de respuesta de una instancia de SQL Server a las solicitudes de cliente no es relevante para los grupos de disponibilidad.

Los FAILURE_CONDITION_LEVEL valores y HEALTH_CHECK_TIMEOUT definen una directiva de conmutación por error flexible para un grupo determinado. Esta directiva flexible de conmutación por error proporciona mayor control sobre las condiciones que deben causar una conmutación por error automática. Para obtener más información, consulte Configuración de una directiva de conmutación por error automática flexible para un grupo de disponibilidad AlwaysOn.

HEALTH_CHECK_TIMEOUT = milisegundos

Especifica el tiempo de espera, en milisegundos, para que el procedimiento almacenado del sistema de sp_server_diagnostics devuelva información de mantenimiento del servidor antes de que el clúster de WSFC asuma que la instancia del servidor es lenta o no responde. Establezca HEALTH_CHECK_TIMEOUT en el nivel de grupo, pero solo es relevante en las réplicas de disponibilidad que configure para el modo de disponibilidad de confirmación sincrónica con conmutación automática por error (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Además, un tiempo de espera de comprobación de estado puede desencadenar una conmutación automática por error solo si las réplicas principales y secundarias están configuradas para el modo de conmutación automática por error (FAILOVER_MODE = AUTOMATIC) y la réplica secundaria está sincronizada actualmente con la réplica principal.

El valor predeterminado HEALTH_CHECK_TIMEOUT es 30 000 milisegundos (30 segundos). El valor mínimo es de 15 000 milisegundos (15 segundos) y el valor máximo es de 4 294 967 295 milisegundos.

Solo se admite en la réplica principal.

Importante

sp_server_diagnostics no realiza comprobaciones de estado en el nivel de base de datos.

DB_FAILOVER = { EN | APAGADO }

Especifica la respuesta que se debe dar cuando una base de datos de la réplica principal está sin conexión. Cuando se establece en ON, cualquier estado distinto ONLINE de para una base de datos del grupo de disponibilidad desencadena una conmutación automática por error. Cuando se establece esta opción OFFen , solo el estado de la instancia desencadena la conmutación automática por error.

Para obtener más información sobre esta configuración, consulte Opción de conmutación por error de detección de estado del nivel de base de datos del grupo de disponibilidad.

DTC_SUPPORT = { PER_DB | NINGUNA }

Especifica si las transacciones distribuidas están habilitadas para este grupo de disponibilidad. Las transacciones distribuidas para bases de datos de grupo de disponibilidad solo se admiten a partir de SQL Server 2016 (13.x), y las transacciones entre bases de datos solo a partir de SQL Server 2016 (13.x) SP2. PER_DB crea el grupo de disponibilidad con compatibilidad con estas transacciones y promueve automáticamente las transacciones entre bases de datos que implican bases de datos del grupo de disponibilidad en transacciones distribuidas. NONE impide la promoción automática de transacciones entre bases de datos a transacciones distribuidas y no registra la base de datos con un RMID estable en DTC. Las transacciones distribuidas no se impiden cuando se usa la configuración de NONE, pero es posible que la conmutación por error de la base de datos y la recuperación automática no se realicen correctamente en algunas circunstancias. Para más información, consulte Transacciones: grupos de disponibilidad y reflejo de la base de datos.

Nota

La compatibilidad con el cambio de la DTC_SUPPORT configuración de un grupo de disponibilidad se introdujo en SQL Server 2016 (13.x) Service Pack 2. Esta opción no se puede usar con versiones anteriores. Para cambiar esta configuración en versiones anteriores de SQL Server, debe DROP y CREATE el grupo de disponibilidad de nuevo.

Importante

DTC tiene un límite de 32 inscripciones por transacción distribuida. Dado que cada base de datos de un grupo de disponibilidad se inscribe con DTC por separado, si la transacción implica más de 32 bases de datos, puede obtener el siguiente error cuando SQL Server intenta inscribir la base de datos 33:

Enlist operation failed: 0x8004d101(XACT_E_TOOMANY_ENLISTMENTS). SQL Server could not register with Microsoft Distributed Transaction Coordinator (MS DTC) as a resource manager for this transaction. The transaction may have been stopped by the client or the resource manager.

Para obtener más información sobre las transacciones distribuidas en SQL Server, consulte Transacciones distribuidas.

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT

Introducido en SQL Server 2017 (14.x). Establece un número mínimo de réplicas secundarias sincrónicas que se deben confirmar antes de que la réplica principal confirme una transacción. Garantiza que las transacciones de SQL Server esperen hasta que se actualicen los registros de transacciones en el número mínimo de réplicas secundarias.

  • Valor predeterminado: 0. Proporciona el mismo comportamiento que SQL Server 2016 (13.x).
  • Mínimo: 0.
  • Máximo: número de réplicas menos 1.

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT se relaciona con las réplicas en modo de confirmación sincrónica. Cuando las réplicas están en modo de confirmación sincrónica, las escrituras en la réplica principal esperan hasta que las escrituras en las réplicas sincrónicas se confirman en el registro de transacciones de la base de datos de réplica. Si un servidor SQL Server que hospeda una réplica sincrónica secundaria deja de responder, SQL Server que hospeda la réplica principal marca esa réplica secundaria a medida NOT SYNCHRONIZED que avanza y continúa. Cuando la base de datos no responde vuelve a estar en línea, se encuentra en un estado "no sincronizado" y la réplica se marca como incorrecta hasta que la principal pueda sincronizarla de nuevo. Esta configuración garantiza que la réplica principal no continúe hasta que el número mínimo de réplicas haya confirmado cada transacción. Si el número mínimo de réplicas no está disponible, se producirá un error en las confirmaciones en la principal. Para el tipo de clúster EXTERNAL, se ha cambiado esta configuración cuando se agrega el grupo de disponibilidad a un recurso de clúster. Vea Alta disponibilidad y protección de datos para las configuraciones de grupo de disponibilidad.

A partir de SQL Server 2022 (16.x), puede establecer REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT en un grupo de disponibilidad distribuido. Esta configuración no se admite para CREATE AVAILABILITY GROUP. Puede usar ALTER AVAILABILITY GROUP para establecer REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT. Por ejemplo:

ALTER AVAILABILITY GROUP [<name>]
  SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = <integer>);

ROL

El único parámetro válido es SECONDARYy esta SET opción solo es válida en grupos de disponibilidad distribuidos. Úselo para conmutar por error un grupo de disponibilidad distribuido.

CLUSTER_CONNECTION_OPTIONS

Aplica a: SQL Server 2025 (17.x) y versiones posteriores

Use la CLUSTER_CONNECTION_OPTIONS cláusula para aplicar el cifrado TLS 1.3 para la comunicación entre el clúster de conmutación por error de Windows Server y las réplicas del grupo de disponibilidad. Especifique las opciones como una lista de pares clave-valor, separados por punto y coma. Use los pares clave-valor para configurar el cifrado de cadena de conexión para el grupo de disponibilidad.

Para volver al cifrado predeterminado, establezca la CLUSTER_CONNECTION_OPTIONS cláusula en una cadena vacía. SQL Server 2025 (17.x) por defecto es Encrypt=Mandatory, y TrustServerCertificate=Yes para conexiones a réplicas de grupos de disponibilidad y escuchas.

Para más información, consulte Conexión a un grupo de disponibilidad con cifrado estricto y TDS 8.0.

En la tabla siguiente se describen los pares clave-valor que puede usar en la CLUSTER_CONNECTION_OPTIONS cláusula :

Key Valores admitidos Description
Encrypt Mandatory, , Strict, Optional Especifica cómo se aplica el cifrado al grupo de disponibilidad. Si el servidor no admite el cifrado, se produce un error en la conexión. Si establece el cifrado Mandatoryen , TrustServerCertificate debe establecerse en sí. Si establece el cifrado en Strict, TrustServerCertificate se omite.

Nota: Este par clave-valor es necesario.
HostNameInCertificate Nombre de réplica o nombre del agente de escucha del grupo de disponibilidad Especifica el nombre de réplica o el nombre del agente de escucha del grupo de disponibilidad en el certificado que se usa para el cifrado. Este valor debe coincidir con el valor del nombre alternativo del firmante del certificado. Si el nombre del servidor aparece en el certificado, puede omitir el HostNameInCertificate par clave-valor. Si el nombre del servidor no aparece en el certificado, debe especificar el HostNameInCertificate par clave-valor con el nombre del servidor.

Nota: Este par clave-valor es opcional.
TrustServerCertificate Yes, No Establézcalo en yes para especificar que el controlador no valide el certificado TLS/SSL del servidor. Si noes , el controlador valida el certificado. Para obtener más información, consulte TDS 8.0.

Nota: Este par clave-valor es opcional.
ServerCertificate Ruta de acceso al certificado Si no desea usar HostNameInCertificate, puede pasar la ruta de acceso al certificado. La cuenta de servicio de clúster debe tener permiso para leer el certificado de la ubicación especificada.

Nota: Este par clave-valor es opcional.
CLUSTER_CONNECTION_OPTIONS Cadena vacía ('') Borra la configuración existente y vuelve a la configuración de cifrado predeterminada de Encrypt=Mandatory y TrustServerCertificate=Yes.

Consulte los ejemplos para obtener información sobre cómo usar la CLUSTER_CONNECTION_OPTIONS cláusula .

AGREGAR database_name DE BASE DE DATOS

Especifica una lista de una o más bases de datos de usuario que desea agregar al grupo de disponibilidad. Es preciso que estas bases de datos residan en la instancia de SQL Server que hospeda la réplica principal actual. Puede especificar varias bases de datos para un grupo de disponibilidad, pero cada base de datos puede pertenecer a solo un grupo de disponibilidad. Para obtener información sobre el tipo de bases de datos que un grupo de disponibilidad puede admitir, consulte Requisitos previos, restricciones y recomendaciones para grupos de disponibilidad AlwaysOn. Para averiguar qué bases de datos locales ya pertenecen a un grupo de disponibilidad, consulte la replica_id columna en la vista de catálogo sys.databases .

Solo se admite en la réplica principal.

Nota

Después de crear el grupo de disponibilidad, debe conectarse a cada instancia de servidor que hospede una réplica secundaria. A continuación, prepare cada base de datos secundaria y únala al grupo de disponibilidad. Para más información, consulte Iniciar el movimiento de datos en una base de datos secundaria AlwaysOn (SQL Server).

ELIMINAR database_name DE BASE DE DATOS

Quita la base de datos principal especificada y las bases de datos secundarias correspondientes del grupo de disponibilidad. Solo se admite en la réplica principal.

Para obtener información sobre los pasos recomendados después de quitar una base de datos de disponibilidad de un grupo de disponibilidad, consulte Eliminación de una base de datos principal de un grupo de disponibilidad AlwaysOn.

AGREGAR RÉPLICA EN

Especifica de una a ocho instancias de SQL Server para que hospeden las réplicas secundarias de un grupo de disponibilidad. Cada réplica se especifica mediante su dirección de instancia del servidor seguida de una WITH (...) cláusula .

Solo se admite en la réplica principal.

Debe unir cada réplica secundaria nueva al grupo de disponibilidad. Para obtener más información, vea la descripción de la JOIN opción, más adelante en esta sección.

<server_instance>

Especifica la dirección de la instancia de SQL Server que es el host de una réplica. El formato de dirección depende de si la instancia es la instancia predeterminada o una instancia con nombre y si es una instancia independiente o una instancia de clúster de conmutación por error (FCI). La sintaxis es la siguiente:

{ 'nombre_sistema[\nombre_instancia]' | 'nombre_red_FCI[\nombre_instancia]' }

Los componentes de esta dirección son los siguientes:

nombre_sistema

Nombre NetBIOS del sistema de equipo en el que reside la instancia de destino de SQL Server. Este equipo debe ser un nodo de WSFC.

nombre_red_FCI

Nombre de red que se usa para acceder a un clúster de conmutación por error de SQL Server. Use este nombre si la instancia del servidor participa como asociado de conmutación por error de SQL Server. SELECT @@SERVERNAME La ejecución en una instancia de servidor FCI devuelve toda su cadena "FCI_network_name[\instance_name]" (que es el nombre completo de la réplica).

Para obtener más información, consulte @@SERVERNAME.

instance_name

Nombre de una instancia de SQL Server que system_name o FCI_network_name hosts y que tiene AlwaysOn habilitado. En el caso de una instancia del servidor predeterminada, nombre_instancia es opcional. El nombre de la instancia no distingue mayúsculas de minúsculas. En una instancia de servidor independiente, este nombre de valor es el mismo que el valor devuelto ejecutando SELECT @@SERVERNAME.

\

Un separador utilizado solo al especificar instance_name, para separarlo de system_name o FCI_network_name.

Para obtener información sobre los requisitos previos para los nodos de WSFC y las instancias de servidor, consulte Requisitos previos, restricciones y recomendaciones para grupos de disponibilidad AlwaysOn.

ENDPOINT_URL = '*TCP:// system-address:*port'

Especifica la ruta de acceso url del punto de conexión de creación de reflejo de la base de datos en la instancia de SQL Server que hospeda la réplica de disponibilidad que va a agregar o modificar.

ENDPOINT_URL es necesario en la ADD REPLICA ON cláusula y opcional en la MODIFY REPLICA ON cláusula . Para obtener más información, consulte Especificar la dirección URL del punto de conexión: agregar o modificar la réplica de disponibilidad.

'TCP:// system-address:port'

Determina una dirección URL para especificar una dirección URL del extremo o una dirección URL de enrutamiento de solo lectura. Los parámetros de la dirección URL son como sigue:

dirección del sistema

Una cadena, como un nombre de sistema, un nombre de dominio completo o una dirección IP, que identifica inequívocamente el sistema informático de destino.

puerto

Número de puerto asociado al punto de conexión de creación de reflejo de la instancia del servidor (para la ENDPOINT_URL opción) o el número de puerto usado por el motor de base de datos de la instancia de servidor (para la READ_ONLY_ROUTING_URL opción).

AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }

Especifica si la réplica principal espera a que la réplica secundaria confirme la protección (escritura) de los registros en el disco antes de que la réplica principal pueda confirmar la transacción en una base de datos principal determinada. Las transacciones realizadas en diferentes bases de datos en la misma réplica principal se pueden confirmar de manera independiente.

SYNCHRONOUS_COMMIT

Especifica que la réplica principal espera a confirmar transacciones hasta que se protejan en esta réplica secundaria (modo de confirmación sincrónica). Puede especificar SYNCHRONOUS_COMMIT hasta tres réplicas, incluida la réplica principal.

ASYNCHRONOUS_COMMIT

Especifica que la réplica principal confirma las transacciones sin esperar a que esta réplica secundaria proteja el registro (modo de disponibilidad de confirmación sincrónica). Puede especificar ASYNCHRONOUS_COMMIT hasta cinco réplicas de disponibilidad, incluida la réplica principal.

CONFIGURATION_ONLY

Especifica que la réplica principal confirme de forma sincrónica los metadatos de configuración del grupo de disponibilidad en la master base de datos de esta réplica. La réplica no contiene datos de usuario. Esta opción:

AVAILABILITY_MODE es necesario en la ADD REPLICA ON cláusula y opcional en la MODIFY REPLICA ON cláusula . Para más información, véase Diferencias entre los modos de disponibilidad para un grupo de disponibilidad Always On.

FAILOVER_MODE = { AUTOMÁTICO | MANUAL }

Especifica el modo de conmutación por error de la réplica de disponibilidad que va a definir.

AUTOMÁTICO

Habilita la conmutación por error automática. AUTOMATIC solo se admite si también especifica AVAILABILITY_MODE = SYNCHRONOUS_COMMIT. Puede especificar AUTOMATIC para tres réplicas de disponibilidad, incluida la réplica principal.

Nota

  • Antes de SQL Server 2016 (13.x), está limitado a dos réplicas de conmutación por error automáticas, incluida la réplica principal.
  • Las instancias de clúster de conmutación por error (FCI) de SQL Server no admiten la conmutación automática por error de grupos de disponibilidad, por lo que cualquier réplica de disponibilidad alojada por un FCI solo se puede configurar para la conmutación por error manual.

MANUAL

Permite que el administrador de la base de datos habilite la conmutación por error manual o la conmutación por error manual forzada (conmutación por error forzada).

Debe especificar FAILOVER_MODE en la ADD REPLICA ON cláusula . Opcionalmente, puede especificarlo en la MODIFY REPLICA ON cláusula . Existen dos tipos de conmutación por error manual: conmutación por error manual sin pérdida de datos y conmutación por error forzada (con posible pérdida de datos). Las diferentes condiciones admiten estos tipos. Para más información, consulte Conmutación por error y modos de conmutación por error (grupos de disponibilidad AlwaysOn).

SEEDING_MODE = { AUTOMÁTICO | MANUAL }

Especifica cómo se propaga inicialmente la réplica secundaria.

AUTOMÁTICO

Habilita la propagación directa. Este método propaga la réplica secundaria a través de la red. Este método no requiere que realice una copia de seguridad y restaure una copia de la base de datos principal en la réplica.

Nota

Para la propagación directa, debe permitir la creación de la base de datos en cada réplica secundaria llamando a ALTER AVAILABILITY GROUP con la GRANT CREATE ANY DATABASE opción .

MANUAL

Especifica la propagación manual (valor predeterminado). Este método requiere la creación de una copia de seguridad de la base de datos en la réplica principal y su restauración manual en la réplica secundaria.

BACKUP_PRIORITY = n

Especifica la prioridad para realizar copias de seguridad en esta réplica en relación con las otras réplicas del mismo grupo de disponibilidad. El valor es un número entero en el intervalo de 0..100. Estos valores tienen los significados siguientes:

  • 1..100 indica que se podría elegir la réplica de disponibilidad para realizar copias de seguridad. 1 indica la prioridad mínima y 100 indica la prioridad máxima. Si BACKUP_PRIORITY = 1es , la réplica de disponibilidad se elige para realizar copias de seguridad solo si no hay réplicas de disponibilidad de prioridad más alta disponibles actualmente.

  • 0 indica que esta réplica de disponibilidad nunca se elige para realizar copias de seguridad. Esta opción es útil, por ejemplo, para una réplica de disponibilidad remota a la que nunca desea que las copias de seguridad conmuten por error.

Para más información, consulte Descarga de copias de seguridad admitidas en las réplicas secundarias de un grupo de disponibilidad.

SECONDARY_ROLE ( ... )

Especifica la configuración específica del rol que surte efecto si esta réplica de disponibilidad posee actualmente el rol secundario (siempre que sea una réplica secundaria). Dentro de los paréntesis, especifique una o ambas de las opciones de rol secundario. Si se especifican ambas, utilice una lista separada por comas.

Las opciones de rol secundario son las siguientes:

ALLOW_CONNECTIONS = { NO | READ_ONLY | TODOS }

Especifica si las bases de datos de una réplica de disponibilidad determinada que realiza el rol secundario (que actúa como réplica secundaria) pueden aceptar conexiones de clientes, una de las siguientes:

No

No se permiten conexiones de usuario a las bases de datos secundarias de esta réplica. No están disponibles para el acceso de lectura. Este es el comportamiento predeterminado.

Solo lectura

Solo se permiten conexiones a las bases de datos de la réplica secundaria donde la propiedad Application Intent está establecida ReadOnlyen . Para obtener más información acerca de esta propiedad, vea Using Connection String Keywords with SQL Server Native Client.

TODOS

Se permiten todas las conexiones con las bases de datos de la réplica secundaria para acceso de solo lectura.

Para obtener más información, consulte Descarga de cargas de trabajo de solo lectura a la réplica secundaria de un grupo de disponibilidad Always On.

READ_ONLY_ROUTING_URL = { '*TCP:// system-address:*port' | NONE }

Especifica la dirección URL que se va a usar para enrutar las solicitudes de conexión de intención de lectura a esta réplica de disponibilidad. Esta dirección URL es donde escucha el motor de base de datos de SQL Server. Normalmente, la instancia predeterminada del motor de base de datos de SQL Server escucha en el puerto TCP 1433.

A partir de SQL Server 2025 (17.x), puedes especificar NONE como READ_ONLY_ROUTING_URL destino revertir el enrutamiento de solo lectura especificado para la réplica de disponibilidad, y enrutar el tráfico según el comportamiento por defecto.

Para una instancia con nombre, consulte las port columnas y type_desc de la sys.dm_tcp_listener_states vista de administración dinámica para obtener el número de puerto. La instancia del servidor usa el agente de escucha de Transact-SQL (type_desc='TSQL').

Para más información sobre cómo calcular la dirección URL de enrutamiento de solo lectura para una réplica de disponibilidad, vea Calculating read_only_routing_url for Always On (Calcular read_only_routing_url para AlwaysOn).

Nota

Para una instancia con nombre de SQL Server, configure la Transact-SQL agente de escucha para usar un puerto específico. Para obtener más información, consulte Configurar un SQL Server para que escuche en un puerto TCP específico.

PRIMARY_ROLE ( ... )

Especifica la configuración específica del rol que surte efecto si esta réplica de disponibilidad posee actualmente el rol principal (siempre que sea la réplica principal). Dentro de los paréntesis, especifique una o ambas de las opciones de rol primarias. Si se especifican ambas, utilice una lista separada por comas.

El rol principal de las opciones es el siguiente:

ALLOW_CONNECTIONS = { READ_WRITE | TODOS }

Especifica el tipo de conexión que las bases de datos de una réplica de disponibilidad determinada que realiza el rol principal (que actúa como réplica principal) pueden aceptar desde los clientes, uno de los siguientes:

LECTURA_ESCRITURA

No se permiten las conexiones en las que la propiedad de conexión Application Intent está establecida ReadOnly en. Cuando la propiedad Application Intent está establecida ReadWrite en o la propiedad de conexión Application Intent no está establecida, se permite la conexión. Para obtener más información sobre propiedad de conexión Application Intent, vea Using Connection String Keywords with SQL Server Native Client.

TODOS

Se permiten todas las conexiones con las bases de datos de la réplica principal. Este es el comportamiento predeterminado.

READ_ONLY_ROUTING_LIST = { ('<server_instance>' [ , ... n ] ) | NONE }

Especifica una lista separada por comas de instancias de servidor que hospedan réplicas de disponibilidad para este grupo de disponibilidad y que cumplen los requisitos siguientes al ejecutarse con el rol secundario:

  • Debe configurarse para permitir todas las conexiones o conexiones de solo lectura (consulte el ALLOW_CONNECTIONS argumento de la SECONDARY_ROLE opción, anteriormente en este artículo).

  • Tener definida su dirección URL de enrutamiento de solo lectura (consulte el READ_ONLY_ROUTING_URL argumento de la SECONDARY_ROLE opción, anteriormente en este artículo).

Los READ_ONLY_ROUTING_LIST valores son los siguientes:

<server_instance>

Especifica la dirección de la instancia de SQL Server que es el host de una réplica de disponibilidad que es una réplica secundaria legible cuando se ejecuta bajo el rol secundario.

Use una lista separada por comas para especificar todas las instancias del servidor que pueden hospedar una réplica secundaria inteligible. El enrutamiento de solo lectura sigue el orden en que se hayan especificado las instancias de servidor en la lista. Si incluye la instancia del servidor de host de una réplica en la lista de enrutamiento de solo lectura de la réplica, por lo general, resulta recomendable colocar esta instancia del servidor al final de la lista, ya que las conexiones de intención de lectura van a una réplica secundaria, si hay alguna disponible. .

A partir de SQL Server 2016 (13.x), puede equilibrar la carga de las solicitudes de intención de lectura en las réplicas secundarias legibles. Para especificarlo, coloque las réplicas en un conjunto anidado de paréntesis dentro de la lista de enrutamiento de solo lectura. Para obtener más información y ejemplos, vea Configuración del equilibrio de carga entre réplicas de solo lectura.

Ninguno

Especifica que cuando esta réplica de disponibilidad es la réplica principal, no se admitirá el enrutamiento de solo lectura. Este es el comportamiento predeterminado. Cuando se usa con MODIFY REPLICA ON, este valor deshabilita una lista existente, si existe.

{ READ_WRITE_ROUTING_URL = '*TCP:// system-address:*port' | NONE }

Se aplica a: SQL Server 2019 (15.x) y versiones posteriores.

Especifica instancias de servidor que hospedan réplicas de disponibilidad para este grupo de disponibilidad que cumplen los requisitos siguientes al ejecutarse con el rol primario:

  • La especificación PRIMARY_ROLE de réplica incluye READ_WRITE_ROUTING_URL.
  • La cadena de conexión es ReadWrite definiendo ApplicationIntent como ReadWrite o no estableciendo ApplicationIntent y permitiendo que el valor predeterminado (ReadWrite) surta efecto.

A partir de SQL Server 2025 (17.x), puedes especificar NONE como READ_WRITE_ROUTING_URL destino revertir el enrutamiento de lectura-escritura especificado para la réplica de disponibilidad, y enrutar el tráfico según el comportamiento por defecto.

Para obtener más información, consulte Redireccionamiento de la conexión de lectura/escritura de réplicas de secundaria a principal (grupos de disponibilidad AlwaysOn).

SESSION_TIMEOUT = segundos

Especifica el período de espera de la sesión en segundos. Si no especifica esta opción, el período de tiempo predeterminado es de 10 segundos. El valor mínimo es de 5 segundos.

Importante

Mantenga el período de tiempo de espera en 10 segundos o superior.

Para obtener más información sobre el período de tiempo de espera de sesión, consulte ¿Qué es un grupo de disponibilidad AlwaysOn?

MODIFICAR RÉPLICA EN

Modifica alguna de las réplicas del grupo de disponibilidad. La lista de réplicas que se van a modificar contiene la dirección de instancia del servidor y una WITH (...) cláusula para cada réplica.

Solo se admite en la réplica principal.

ELIMINAR RÉPLICA EN

Quita la réplica secundaria especificada del grupo de disponibilidad. No se puede quitar la réplica principal actual de un grupo de disponibilidad. Al quitar una réplica, deja de recibir datos. Las bases de datos secundarias de la réplica se quitan del grupo de disponibilidad y escriben el RESTORING estado.

Solo se admite en la réplica principal.

Nota

Si quita una réplica mientras no está disponible o no está disponible, cuando vuelve a estar en línea, detecta que ya no pertenece al grupo de disponibilidad.

JUNTAR

Hace que la instancia de servidor local hospede una réplica secundaria en el grupo de disponibilidad especificado.

Solo se admite en una réplica secundaria que aún no esté unida al grupo de disponibilidad.

Para obtener más información, consulte Unión de una réplica secundaria a un grupo de disponibilidad AlwaysOn.

CONMUTACIÓN POR ERROR

Inicia una conmutación por error manual del grupo de disponibilidad sin pérdida de datos en la réplica secundaria a la que está conectado. La réplica que hospeda la réplica principal es el destino de conmutación por error. El destino de conmutación por error toma el rol principal y recupera su copia de cada base de datos, lo que los pone en línea como las nuevas bases de datos principales. La réplica principal anterior realiza la transición de forma simultánea al rol secundario y sus bases de datos se convierten en bases de datos secundarias, además quedan suspendidas inmediatamente. Potencialmente, estos roles pueden cambiar hacia atrás y hacia delante por una serie de errores.

La conmutación por error solo se admite en una réplica secundaria de confirmación sincrónica que está sincronizada actualmente con la réplica principal. Para que se sincronice una réplica secundaria, la réplica principal también debe estar ejecutándose en modo de confirmación sincrónica.

En el caso de dos instancias de SQL Server en un grupo de disponibilidad, puede emitir el comando de conmutación por error en la réplica principal o secundaria. Para las instancias replicadas a través del vínculo Instancia administrada, debe emitir el comando de conmutación por error en la réplica principal.

Nota

  • Para un grupo de disponibilidad, un comando de conmutación por error devuelve tan pronto como el destino de conmutación por error acepta el comando . Sin embargo, la recuperación de la base de datos se produce de forma asincrónica después de que el grupo de disponibilidad termine de conmutar por error.
  • Para una conmutación por error de vínculo de Instancia administrada, el comando de conmutación por error devuelve después de una conmutación por error correcta en la que los roles de conmutador de origen y destino, o si el comando de conmutación por error produce un error después de que se produzca un error en las comprobaciones de condición previa de conmutación por error.
  • No puede usar el comando de conmutación por error para una conmutación por error planeada de un grupo de disponibilidad distribuido entre dos instancias de SQL Server.

Para obtener información sobre las limitaciones, los requisitos previos y las recomendaciones para realizar una conmutación por error manual planeada, vea Realizar una conmutación por error manual planeada de un grupo de disponibilidad AlwaysOn (SQL Server).

FORCE_FAILOVER_ALLOW_DATA_LOSS

Precaución

Inicie solo una conmutación por error forzada como medida de recuperación ante desastres, ya que puede provocar la pérdida de datos. La conmutación por error forzada solo se debe realizar cuando la réplica principal no está disponible, está preparado para aceptar la posible pérdida de datos y debe restaurar el servicio al grupo de disponibilidad inmediatamente.

Solo se admite en una réplica cuyo rol está en el SECONDARY estado o RESOLVING . La réplica en la que escribe un comando de conmutación por error es el destino de conmutación por error.

Fuerza la conmutación por error del grupo de disponibilidad, con posible pérdida de datos, al destino de la conmutación por error. El destino de conmutación por error toma el rol principal y recupera su copia de cada base de datos, lo que los pone en línea como las nuevas bases de datos principales. En cualquier réplica secundaria restante, cada base de datos secundaria se suspende hasta que se reanude manualmente. Cuando la réplica principal anterior está disponible, cambia al rol secundario y sus bases de datos se convierten en bases de datos secundarias suspendidas.

Para las instancias replicadas a través del vínculo Instancia administrada, debe emitir el FORCE_FAILOVER_ALLOW_DATA_LOSS comando en la réplica secundaria (el destino de conmutación por error).

Nota

Un comando de conmutación por error devuelve tan pronto como el destino de conmutación por error acepta el comando . Sin embargo, la recuperación de la base de datos se produce de forma asincrónica después de que el grupo de disponibilidad termine de conmutar por error.

Para obtener información sobre las limitaciones, los requisitos previos y las recomendaciones para forzar la conmutación por error y el efecto de una conmutación por error forzada en las bases de datos principales anteriores del grupo de disponibilidad, consulte Realización de una conmutación por error manual forzada de un grupo de disponibilidad AlwaysOn (SQL Server).

ADD LISTENER 'dns_name' ( <add_listener_option> )

Define un nuevo agente de escucha para este grupo de disponibilidad. Solo se admite en la réplica principal.

Importante

Antes de crear el primer agente de escucha, lea Configuración de un agente de escucha para un grupo de disponibilidad AlwaysOn.

Después de crear un agente de escucha para un grupo de disponibilidad determinado, siga estos pasos:

  • Pida al administrador de red que reserve la dirección IP del agente de escucha para su uso exclusivo.
  • Proporcione el nombre del host DNS del agente de escucha a los desarrolladores de aplicaciones para que lo usen en las cadenas de conexión cuando soliciten conexiones cliente a este grupo de disponibilidad.

dns_name

Especifica el nombre de host DNS del agente de escucha del grupo de disponibilidad. El nombre DNS del agente de escucha debe ser único en el dominio y en NetBIOS.

dns_name es un valor de cadena. Este nombre solo puede contener caracteres alfanuméricos, guiones (-) y caracteres de subrayado (_), en cualquier orden. Los nombres de host DNS no distinguen entre mayúsculas y minúsculas. La longitud máxima es de 63 caracteres.

Especifique una cadena significativa. Por ejemplo, para un grupo de disponibilidad denominado AG1, un nombre de host DNS significativo sería ag1-listener.

Importante

NetBIOS reconoce solo los primeros 15 caracteres de .dns_name Si tiene dos clústeres de WSFC controlados por el mismo Active Directory e intenta crear agentes de escucha de grupo de disponibilidad en ambos clústeres con más de 15 caracteres y un prefijo idéntico de 15 caracteres, obtendrá un informe de errores que indica que el recurso Nombre de red virtual no se pudo poner en línea. Para obtener información acerca de las reglas de nomenclatura de prefijos para los nombres DNS, vea Asignación de nombres de dominio.

UNIRSE AL GRUPO DE DISPONIBILIDAD EN

Se une a un grupo de disponibilidad distribuido. Al crear un grupo de disponibilidad distribuido, el grupo de disponibilidad en el clúster donde se crea es el grupo de disponibilidad principal. El grupo de disponibilidad que se une al grupo de disponibilidad distribuido es el grupo de disponibilidad secundario.

<ag_name>

especifica el nombre del grupo de disponibilidad que constituye la mitad del grupo de disponibilidad distribuido.

LISTENER = '*TCP:// system-address:*port'

Especifica la ruta de acceso de la dirección URL del agente de escucha asociado al grupo de disponibilidad.

Se requiere la LISTENER cláusula .

'*TCP:// system-address:*port'

Especifica una dirección URL del agente de escucha asociado al grupo de disponibilidad. Los parámetros de la dirección URL son como sigue:

dirección del sistema

Cadena, como un nombre de sistema, un nombre de dominio completo o una dirección IP, que identifica inequívocamente el agente de escucha.

puerto

Número de puerto asociado al punto de conexión de creación de reflejo del grupo de disponibilidad. Este no es el puerto del agente de escucha.

AVAILABILITY_MODE = { COMPROMISO_SINCRÓNICO | COMPROMISO_ASINCRÓNICO }

Especifica si la réplica principal espera a que el grupo de disponibilidad secundario confirme la protección (escritura) de los registros de registro en el disco antes de que la réplica principal pueda confirmar la transacción en una base de datos principal determinada.

SYNCHRONOUS_COMMIT

Especifica que la réplica principal espera a confirmar transacciones hasta que reciba la confirmación de que las transacciones se protegen en el grupo de disponibilidad secundario. Puede especificar SYNCHRONOUS_COMMIT hasta dos grupos de disponibilidad, incluido el grupo de disponibilidad principal.

ASYNCHRONOUS_COMMIT

Especifica que la réplica principal confirma las transacciones sin esperar a que este grupo de disponibilidad secundario proteja el registro. Puede especificar ASYNCHRONOUS_COMMIT hasta dos grupos de disponibilidad, incluido el grupo de disponibilidad principal.

Se requiere la AVAILABILITY_MODE cláusula .

FAILOVER_MODE = { MANUAL }

Especifica el modo de conmutación por error del grupo de disponibilidad distribuido.

MANUAL

Permite que el administrador de la base de datos habilite la conmutación por error manual planeada o la conmutación por error manual forzada (denominada normalmente conmutación por error forzada).

No se admite la conmutación automática por error al grupo de disponibilidad secundario.

SEEDING_MODE = { AUTOMÁTICO | MANUAL }

Especifica cómo se propaga inicialmente el grupo de disponibilidad secundario.

AUTOMÁTICO

Habilita la propagación automática. Este método propaga el grupo de disponibilidad secundario a través de la red. Este método no requiere que realice una copia de seguridad y restaure una copia de la base de datos principal en las réplicas del grupo de disponibilidad secundario.

MANUAL

Especifica la propagación manual. Este método requiere que cree una copia de seguridad de la base de datos en la réplica principal y restaure manualmente esa copia de seguridad en las réplicas del grupo de disponibilidad secundario.

MODIFICAR GRUPO DE DISPONIBILIDAD EN

Modifica las opciones de configuración de grupo de disponibilidad de un grupo de disponibilidad distribuido. La lista de grupos de disponibilidad que se van a modificar contiene el nombre del grupo de disponibilidad y una WITH (...) cláusula para cada grupo de disponibilidad.

Importante

Debe ejecutar este comando tanto en el grupo de disponibilidad principal como en las instancias del grupo de disponibilidad secundario.

CONCEDER CREAR CUALQUIER BASE DE DATOS

Permite al grupo de disponibilidad crear bases de datos en nombre de la réplica principal, que admite la propagación directa (SEEDING_MODE = AUTOMATIC). Ejecute este parámetro en cada réplica secundaria que admita la propagación directa después de que esa base de datos secundaria se una al grupo de disponibilidad. Requiere el permiso CREATE ANY DATABASE.

DENEGAR CREAR CUALQUIER BASE DE DATOS

Elimina la capacidad del grupo de disponibilidad de crear bases de datos en nombre de la réplica principal.

<add_listener_option>

ADD LISTENER toma una de las siguientes opciones:

CON DHCP [ ON { ('four_part_ipv4_address','four_part_ipv4_mask') } ]

Especifica que el agente de escucha del grupo de disponibilidad usa el protocolo DHCP (Protocolo de configuración dinámica de host). Opcionalmente, use la ON cláusula para identificar la red en la que se crea este agente de escucha. DHCP se limita a una sola subred que se usa para cada instancia de servidor que hospeda una réplica de disponibilidad en el grupo de disponibilidad.

Importante

No uses DHCP en un entorno de producción. Si hay tiempo de inactividad y expira la concesión de IP DHCP, se requiere tiempo adicional para registrar la nueva dirección IP de red DHCP asociada al nombre DNS del agente de escucha y afecta a la conectividad del cliente. Sin embargo, DHCP es adecuado para configurar el entorno de desarrollo y pruebas para comprobar características básicas de los grupos de disponibilidad y para la integración con las aplicaciones.

Por ejemplo:

WITH DHCP ON ('10.120.19.0','255.255.254.0')

WITH IP ( { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') } [ , ... n ] ) [ , PORT = listener_port ]

En lugar de usar DHCP, el agente de escucha del grupo de disponibilidad usa una o varias direcciones IP estáticas. Para crear un grupo de disponibilidad a través de varias subredes, cada subred requiere una dirección IP estática en la configuración de la escucha. Para una subred determinada, la dirección IP estática puede ser una dirección IPv4 o una dirección IPv6. Póngase en contacto con el administrador de red para obtener una dirección IP estática para cada subred que hospede una réplica de disponibilidad para el nuevo grupo de disponibilidad.

Por ejemplo:

WITH IP ( ('10.120.19.155','255.255.254.0') )

ipv4_address

Una dirección IPv4 de cuatro partes para un agente de escucha del grupo de disponibilidad. Por ejemplo, 10.120.19.155.

ipv4_mask

Máscara de cuatro partes IPv4 para un agente de escucha de grupo de disponibilidad. Por ejemplo, 255.255.254.0.

ipv6_address

Una dirección IPv6 para un agente de escucha de grupo de disponibilidad. Por ejemplo, 2001::4898:23:1002:20f:1fff:feff:b3a3.

PUERTO = listener_port

Número de puerto (listener_port) que va a usar un agente de escucha de grupo de disponibilidad que especifica la WITH IP cláusula . PORT es opcional.

Se admite el número de puerto predeterminado, 1433, . Sin embargo, puede elegir un número de puerto diferente.

Por ejemplo: WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777

MODIFY LISTENER 'dns_name' ( <modify_listener_option> )

Modifica el agente de escucha de un grupo de disponibilidad existente para este grupo de disponibilidad. Solo se admite en la réplica principal.

<modify_listener_option>

MODIFY LISTENER toma una de las siguientes opciones:

ADD IP { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') }

Agrega la dirección IP especificada al agente de escucha del grupo de disponibilidad especificado por dns_name.

PUERTO = listener_port

Vea la descripción de este argumento anteriormente en esta sección.

REMOVE IP { ('four_part_ipv4_address') | ('ipv6_address') }

Aplica a: SQL Server 2025 (17.x) y versiones posteriores

Quita la dirección IP especificada del agente de escucha del grupo de disponibilidad especificado.

RESTART LISTENER 'dns_name'

Reinicia el agente de escucha asociado al nombre DNS especificado. Solo se admite en la réplica principal.

REMOVE LISTENER 'dns_name'

Quita el agente de escucha asociado al nombre DNS especificado. Solo se admite en la réplica principal.

SIN CONEXIÓN

Pone sin conexión un grupo de disponibilidad que está en línea. No hay ninguna pérdida de datos para las bases de datos de confirmación sincrónica.

Cuando un grupo de disponibilidad se queda sin conexión, sus bases de datos no están disponibles para los clientes y no se puede volver a poner el grupo de disponibilidad en línea. Por lo tanto, use la OFFLINE opción solo durante una migración entre clústeres de grupos de disponibilidad AlwaysOn, al migrar los recursos del grupo de disponibilidad a un nuevo clúster de WSFC.

Para más información, vea Poner sin conexión un grupo de disponibilidad (SQL Server).

Requisitos previos y restricciones

Para obtener información sobre los requisitos previos y las restricciones en las réplicas de disponibilidad y en sus instancias y equipos del servidor host, consulte Requisitos previos, restricciones y recomendaciones para grupos de disponibilidad AlwaysOn.

Para obtener información sobre las restricciones de las AVAILABILITY GROUP instrucciones Transact-SQL, consulte instruccionesTransact-SQL para grupos de disponibilidad AlwaysOn.

Permisos

Necesita ALTER AVAILABILITY GROUP permiso en el grupo de disponibilidad, CONTROL AVAILABILITY GROUP el permiso, ALTER ANY AVAILABILITY GROUP el permiso o CONTROL SERVER el permiso. También necesita ALTER ANY DATABASE permiso.

Ejemplos

Un. Combinar una réplica secundaria con un grupo de disponibilidad

En el ejemplo siguiente se combina una réplica secundaria a la que está conectado al grupo de disponibilidad AccountsAG.

ALTER AVAILABILITY GROUP AccountsAG JOIN;
GO

B. Forzar la conmutación por error de un grupo de disponibilidad

En el ejemplo siguiente se fuerza al grupo de disponibilidad AccountsAG a conmutar por error a la réplica secundaria a la que está conectado.

ALTER AVAILABILITY GROUP AccountsAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
GO

C. Forzar el cifrado en las conexiones al grupo de disponibilidad

Los ejemplos de esta sección fuerzan el cifrado en las conexiones al AccountsAG grupo de disponibilidad.

Si el nombre del servidor aparece en cada certificado según lo definido por cualquiera de los métodos, puede omitir la HostNameInCertificate opción:

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict')

Si ha seguido el método 1 pero no ha indicado el nombre del servidor como nombre alternativo del firmante en el certificado, debe especificar el valor que aparece en el nombre alternativo del firmante en la HostNameInCertificate opción:

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict;HostNameInCertificate=<Subject Alternative Name>')

Si ha seguido el método 1 y quiere usar la ServerCertificate propiedad en lugar de proporcionar un valor para HostNameInCertificate:

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict;ServerCertificate=C:\Users\admin\SqlAGCertificate.cer')