Share via


CREATE AVAILABILITY GROUP (Transact-SQL)

Crea un nuevo grupo de disponibilidad, si la instancia de SQL Server está habilitada para la característica Grupos de disponibilidad AlwaysOn.

Nota importanteImportante

Ejecute CREATE AVAILABILITY GROUP en la instancia de SQL Server que desea usar como réplica principal inicial del nuevo grupo de disponibilidad. Esta instancia de servidor debe residir en un nodo de clúster de conmutación por error de Windows Server (WSFC).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

CREATE AVAILABILITY GROUP group_name
   WITH (<with_option_spec> [ ,...n ] )
   FOR [ DATABASE database_name [ ,...n ] ]
   REPLICA ON <add_replica_spec> [ ,...n ]
   [ LISTENER ‘dns_name’ ( <listener_option> ) ]
[ ; ]

<with_option_spec>::= 
    AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SECONDARY | NONE }
  | FAILURE_CONDITION_LEVEL  = { 1 | 2 | 3 | 4 | 5 } 
  | HEALTH_CHECK_TIMEOUT = milliseconds 

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

  <add_replica_option>::=
       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 } ]
     } )
     | SESSION_TIMEOUT = integer 

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

  <network_subnet_option> ::=
     ‘four_part_ipv4_address’, ‘four_part_ipv4_mask’  

  <ip_address_option> ::=
     { 
        ‘four_part_ipv4_address’, ‘four_part_ipv4_mask’
      | ‘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. La longitud máxima de un nombre de grupo de disponibilidad de nombre es 128 caracteres.

  • AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SECONDARY | NONE }
    Especifica una preferencia sobre cómo un trabajo de copia de seguridad debe evaluar la réplica principal cuando elige 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.

    Los valores admitidos son los siguientes:

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

      Nota importanteImportante

      Si piensa usar el trasvase de registros para preparar cualquier base de datos secundaria de un grupo de disponibilidad, establezca la preferencia de copia de seguridad automatizada en Principal hasta que todas las bases de datos secundarias se hayan preparado y combinado con el grupo de disponibilidad.

    • SECONDARY_ONLY
      Especifica que las copias de seguridad no deben realizarse nunca en la réplica principal. Si la réplica principal es la única réplica en línea, no se debe realizar la copia de seguridad.

    • SECONDARY
      Especifica que las copias de seguridad se deben realizar en una réplica secundaria a menos que la réplica principal sea la única réplica en línea. En ese caso, la copia de seguridad se debe realizar en la réplica principal. Este es el comportamiento predeterminado.

    • NONE
      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 considerar otros factores, como la prioridad de copia de seguridad de cada réplica de disponibilidad junto con su estado operativo y de conexión.

    Nota importanteImportante

    No se aplica el valor AUTOMATED_BACKUP_PREFERENCE. La interpretación de esta preferencia depende de la lógica, si existe, del script con los trabajos de copia de seguridad ejecutado para las bases de datos de un grupo de disponibilidad dado. La configuración de preferencia de copia de seguridad automatizada no tiene ningún efecto sobre las copias de seguridad ad hoc. Para obtener más información, vea Configurar la copia de seguridad en réplicas de disponibilidad (SQL Server).

    [!NOTA]

    Para ver la preferencia de copia de seguridad automatizada de un grupo de disponibilidad existente, seleccione la columna automated_backup_preference o automated_backup_preference_desc de la vista del catálogo sys.availability_groups. Además, se puede usar sys.fn_hadr_backup_is_preferred_replica (Transact-SQL) para determinar la réplica de copia de seguridad preferida. Esta función siempre devolverá 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 desencadenarán una conmutación por error automática para este grupo de disponibilidad. FAILURE_CONDITION_LEVEL se establece en el nivel de grupo, pero solo se aplica a las réplicas de disponibilidad que tienen configurado el modo de disponibilidad de confirmación sincrónica (AVAILIBILITY_MODE = SYNCHRONOUS_COMMIT). Además, las condiciones de error pueden desencadenar una conmutación por error automática solamente si las réplicas principal y secundaria están configuradas para el modo de conmutación por error automático (FAILOVER_MODE = AUTOMATIC) y la réplica secundaria está sincronizada actualmente con 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 correspondiente a cada nivel.

    Nivel

    Condición de error

    1

    Especifica que se debe iniciar una conmutación por error automática en los casos siguientes:

    2

    Especifica que se debe iniciar una conmutación por error automática en los casos siguientes:

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

    • La réplica de disponibilidad tiene un estado de error.

    3

    Especifica que se debe iniciar una conmutación automática por error en caso de errores internos de SQL Server graves, como bloqueos por subproceso huérfanos, infracciones graves de acceso de escritura o un volcado excesivo.

    Este es el comportamiento predeterminado.

    4

    Especifica que se debe iniciar una conmutación automática por error en caso de errores internos de SQL Server moderados, tales como una condición persistente de memoria insuficiente en el grupo de recursos de servidor interno de SQL Server.

    5

    Especifica que se debe iniciar una conmutación por error automática en el caso de condiciones de error designadas, incluidas las siguientes:

    • 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 solicitudes del cliente no se aplica a los grupos de la disponibilidad.

    Los valores de FAILURE_CONDITION_LEVEL y HEALTH_CHECK_TIMEOUT definen una directiva flexible de conmutación por error para un grupo dado. 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, vea Directiva de conmutación por error flexible para conmutación automática por error de un grupo de disponibilidad (SQL Server).

  • HEALTH_CHECK_TIMEOUT = milliseconds
    Especifica el tiempo de espera (en milisegundos) para que el procedimiento almacenado sp_server_diagnostics devuelva información de estado del servidor antes de que el clúster de WSFC asuma que la instancia del servidor está inactiva o bloqueada. HEALTH_CHECK_TIMEOUT se establece en el nivel de grupo, pero solo se aplica a réplicas de disponibilidad que tienen configurado el modo de confirmación sincrónica con conmutación de error automática (AVAILIBILITY_MODE = SYNCHRONOUS_COMMIT). Además, el tiempo de espera de comprobación del estado puede desencadenar una conmutación por error automática solamente si las réplicas principal y secundaria están configuradas para el modo de conmutación por error automático (FAILOVER_MODE = AUTOMATIC) y la réplica secundaria está sincronizada actualmente con la réplica principal.

    El valor predeterminado de HEALTH_CHECK_TIMEOUT es 30000 milisegundos (30 segundos). El valor mínimo es 15000 milisegundos (15 segundos) y el valor máximo es 4294967295 milisegundos.

    Nota importanteImportante

    sp_server_diagnostics no realiza comprobaciones de estado en la base de datos.

  • DATABASE database_name
    Especifica una lista de una o varias bases de datos de usuario en la instancia local de SQL Server (es decir, la instancia de servidor en la que se crea el grupo de disponibilidad). 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 acerca del tipo de bases de datos que un grupo de disponibilidad puede admitir, vea Requisitos previos, restricciones y recomendaciones para Grupos de disponibilidad AlwaysOn (SQL Server). Para saber qué bases de datos locales pertenecen a un grupo de disponibilidad, vea la columna replica_id en la vista de catálogo sys.databases.

    La cláusula DATABASE es opcional. Si se omite, el nuevo grupo de disponibilidad estará vacío.

    Una vez haya creado la disponibilidad del grupo, deberá conectarse a cada instancia del servidor que hospede una réplica secundaria y, posteriormente, preparar cada base de datos secundaria y combinarla con la disponibilidad de grupo. Para obtener más información, vea Iniciar el movimiento de datos en una base de datos secundaria AlwaysOn (SQL Server).

    [!NOTA]

    Más adelante, podrá agregar las bases de datos que reúnan los requisitos en la instancia del servidor que hospede la réplica principal actual para un grupo de disponibilidad. También puede quitar una base de datos secundaria de un grupo de disponibilidad. Para obtener más información, vea ALTER AVAILABILITY GROUP (Transact-SQL).

  • REPLICA ON
    Especifica de una a cinco instancias de SQL Server para que hospeden réplicas de disponibilidad en el nuevo grupo de disponibilidad. Cada réplica se especifica mediante la dirección de su instancia de servidor seguida de una cláusula WITH (…). Como mínimo, debe especificar la instancia del servidor local, que se convertirá en la réplica principal inicial. Opcionalmente, puede especificar también hasta cuatro réplicas secundarias.

    Debe unir cada réplica secundaria al grupo de disponibilidad. Para obtener más información, vea ALTER AVAILABILITY GROUP (Transact-SQL).

    [!NOTA]

    Si especifica menos de cuatro réplicas secundarias cuando crea un grupo de disponibilidad, puede agregar una réplica secundaria adicional en cualquier momento mediante la instrucción Transact-SQL ALTER AVAILABILITY GROUP. También puede utilizar esta instrucción para quitar réplicas secundarias de un grupo de disponibilidad existente.

  • <instancia_servidor>
    Especifica la dirección de la instancia de SQL Server que sea el host para una réplica. El formato de la dirección depende de si la instancia es la instancia predeterminada o una instancia con nombre y de si es una instancia independiente o una instancia de clúster de conmutación por error (FCI), tal como sigue:

    { 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' }

    Los componentes de esta dirección son los siguientes:

    • system_name
      Es el nombre de NetBIOS del equipo en el que reside la instancia de destino de SQL Server. Este equipo debe ser un nodo de WSFC.

    • FCI_network_name
      Es el nombre de red que se utiliza para tener acceso a un clúster de conmutación por error de SQL Server. Utilice este argumento si la instancia de servidor participa como asociado de conmutación por error de SQL Server. La ejecución de SELECT @@SERVERNAME en una instancia de servidor de FCI devuelve la cadena 'FCI_network_name[\instance_name]' completa (que es el nombre completo de la réplica).

    • instance_name
      Es el nombre de una instancia de SQL Server hospedada por system_name o FCI_network_name y que tiene habilitado el servicio HADR. En el caso de una instancia de servidor predeterminada, instance_name 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 mediante la ejecución de SELECT @@SERVERNAME.

    • \
      Es un separador que solo se utiliza cuando se especifica instance_name, para separarlo de system_name o de FCI_network_name.

    Para obtener información sobre los requisitos previos para los nodos y las instancias de servidor de WSFC, vea Requisitos previos, restricciones y recomendaciones para Grupos de disponibilidad AlwaysOn (SQL Server).

  • ENDPOINT_URL = 'TCP://system-address:port'
    Especifica la ruta de acceso de la dirección URL para el extremo de creación de reflejo de la base de datos en la instancia de SQL Server que va a hospedar a la réplica de disponibilidad que se está definiendo en la cláusula REPLICA ON actual.

    La cláusula ENDPOINT_URL es obligatoria. 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).

  • 'TCP://system-address:port'
    Especifica 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:

    • system-address
      Es una cadena, como un nombre de sistema, un nombre de dominio completo o una dirección IP, que identifica sin ambigüedad el equipo de destino.

    • port
      Es un número de puerto que está asociado al extremo de creación de reflejo de la instancia del servidor asociado (para la opción de ENDPOINT_URL) o al número de puerto que utiliza Motor de base de datos de la instancia del servidor (para la opción de READ_ONLY_ROUTING_URL).

  • AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
    Especifica si la réplica principal tiene que esperar a que la réplica secundaria confirme la protección (escritura) de los registros en el disco para poder confirmar la transacción en una base de datos principal dada. 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 esperará a confirmar las transacciones hasta que se hayan protegido en la réplica secundaria (modo de confirmación sincrónica). Puede especificar SYNCHRONOUS_COMMIT hasta para 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 para cinco réplicas de disponibilidad, incluida la réplica principal.

    La cláusula AVAILABILITY_MODE es obligatoria. Para obtener más información, vea Modos de disponibilidad (grupos de disponibilidad AlwaysOn).

  • FAILOVER_MODE = { AUTOMATIC | MANUAL }
    Especifica el modo de conmutación por error de la réplica de disponibilidad que está definiendo.

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

      [!NOTA]

      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 tanto, todas las réplicas de disponibilidad hospedadas por un FCI solo se pueden 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 planeada o la conmutación por error manual forzada (denominada normalmente conmutación por error forzada).

    La cláusula FAILOVER_MODE es obligatoria. Los dos tipos de conmutación por error manual, la conmutación por error manual sin pérdida de datos y la conmutación por error forzada (con posible pérdida de datos), se admiten en diferentes condiciones. Para obtener más información, vea Conmutación por error y modos de conmutación por error (grupos de disponibilidad AlwaysOn).

  • 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 rango de 0..100. Estos valores tienen los significados siguientes:

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

    • 0 indica que esta réplica de disponibilidad nunca se elegirá para realizar copias de seguridad. Esto es útil, por ejemplo, para una réplica de disponibilidad remota en la que no desee nunca realizar la conmutación por error para las copias de seguridad.

    Para obtener más información, vea Secundarias activas: copia de seguridad en las réplicas secundarias (grupos de disponibilidad AlwaysOn).

  • SECONDARY_ROLE ()
    Especifica la configuración específica del rol que se aplicará si esta réplica de disponibilidad posee actualmente el rol secundario (es decir, 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 | ALL }
      Especifica si las bases de datos de una réplica de disponibilidad determinada que está realizando el rol secundario (es decir, actuando como réplica secundaria) pueden aceptar conexiones de los clientes; uno de los tipos de conexión siguientes:

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

      • READ_ONLY
        Solo se permiten conexiones con las bases de datos de la réplica secundaria donde la propiedad Application Intent se establece en ReadOnly. Para obtener más información acerca de esta propiedad, vea Usar palabras clave de cadena de conexión con SQL Server Native Client.

      • ALL
        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, vea Secundarias activas: réplicas secundarias legibles (grupos de disponibilidad AlwaysOn).

    • READ_ONLY_ROUTING_URL = 'TCP://system-address:port'
      Especifica la dirección URL que se va a usar para enrutar las solicitudes de conexión de intención de lectura de enrutamiento para esta réplica de disponibilidad. Es la dirección URL en la que 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.

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

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

      [!NOTA]

      En el caso de una instancia con nombre de SQL Server, se debe configurar el agente de escucha de Transact-SQL para que use un puerto específico. Para obtener más información, vea Configurar un servidor para que escuche en un puerto TCP específico (Administrador de configuración de SQL Server).

  • PRIMARY_ROLE ()
    Especifica la configuración específica del rol que se aplicará si esta réplica de disponibilidad posee actualmente el rol primario (es decir, siempre que sea la réplica primaria). 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 | ALL }
      Especifica el tipo de conexión que la base de datos de una réplica de disponibilidad determinada que está realizando el rol principal (es decir, actuando como réplica principal) puede aceptar de los clientes; uno de los tipos de conexión siguientes:

      • READ_WRITE
        No se permiten las conexiones en las que la propiedad de conexión Application Intent esté establecida en ReadOnly. Cuando la propiedad Application Intent está establecida en ReadWrite o no tiene ningún valor, se permite la conexión. Para obtener más información sobre propiedad de conexión Application Intent, vea Usar palabras clave de cadena de conexión con SQL Server Native Client.

      • ALL
        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:

      • Está configurado para permitir todas las conexiones o las conexiones de solo lectura (vea el argumento ALLOW_CONNECTIONS de la opción SECONDARY_ROLE de más arriba).

      • Tiene definida su dirección URL de enrutamiento de solo lectura (vea el argumento READ_ONLY_ROUTING_URL de la opción de SECONDARY_ROLE de más arriba).

      Estos son los valores de READ_ONLY_ROUTING_LIST:

      • <instancia_servidor>
        Especifica la dirección de la instancia de SQL Server que es el host para una réplica de disponibilidad que es una réplica secundaria inteligible cuando se ejecuta en 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 seguirá el orden en que las instancias de servidor se especifican 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. .

      • NONE
        Especifica que cuando esta réplica de disponibilidad es la réplica primaria, no se admitirá en el enrutamiento de solo lectura. Este es el comportamiento predeterminado.

  • SESSION_TIMEOUT = integer
    Especifica el período de espera de la sesión en segundos. Si no especifica esta opción, el período equivale a 10 segundos de forma predeterminada. El valor mínimo es de 5 segundos.

    Nota importanteImportante

    Es recomendable que mantenga el período de espera en 10 segundos o más.

    Para obtener más información sobre el tiempo de espera de la sesión, vea Información general de los grupos de disponibilidad AlwaysOn (SQL Server).

  • LISTENER dns_name ( <listener_option> )
    Define un nuevo agente de escucha para este grupo de disponibilidad. LISTENER es un argumento opcional.

    Nota importanteImportante

    Antes de crear el primer agente de escucha, se recomienda encarecidamente que lea Crear o configurar un agente de escucha del grupo de disponibilidad (SQL Server).

    Después de crear un agente de escucha para un grupo de disponibilidad determinado, es absolutamente recomendable que haga lo siguiente:

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

    Es recomendable que especifique una cadena que tenga sentido. Por ejemplo, para un grupo de disponibilidad denominado AG1, un nombre de host DNS significativo sería ag1-listener.

    Nota importanteImportante

    NetBIOS reconoce solo los 15 primeros caracteres en dns_name. Si tiene dos clústeres de WSFC controlados por la misma instancia de Active Directory e intenta crear agentes de escucha del grupo de disponibilidad en los dos clústeres utilizando nombres con más de 15 caracteres y un prefijo idéntico de 15 caracteres, obtendrá un error notificando que el recurso de 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.

  • <listener_option>
    LISTENER toma una de las siguientes opciones de <listener_option>:

    • WITH DHCP [ ON { (‘four_part_ipv4_address’,‘four_part_ipv4_mask’) } ]
      Especifica que el agente de escucha del grupo de disponibilidad utilizará el protocolo DHCP (Protocolo de configuración dinámica de host). Opcionalmente, utilice la cláusula ON para identificar la red en la que se creará esta escucha. DHCP está limitado a una sola subred que se usa para cada instancia del servidor que hospeda una réplica de disponibilidad en el grupo de disponibilidad.

      Nota importanteImportante

      No se recomienda DHCP en el entorno de producción. Si hay un tiempo de inactividad y expira la concesión de IP para DHCP, se necesitará más tiempo para registrar la nueva dirección IP de red DHCP que está asociada con el nombre DNS de escucha, lo que puede afectar a la conectividad de 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 ]
      Especifica que, en lugar de utilizar DHCP, la escucha del grupo de disponibilidad utilizará una o más 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 hospeda una réplica de disponibilidad para el nuevo grupo de disponibilidad.

      Por ejemplo:

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

  • four_part_ipv4_address
    Especifica una dirección IPv4 de cuatro partes para el agente de escucha de un grupo de disponibilidad. Por ejemplo, 10.120.19.155.

  • four_part_ipv4_mask
    Especifica una máscara IPv4 de cuatro partes para el agente de escucha de un grupo de disponibilidad. Por ejemplo, 255.255.254.0.

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

  • PORT = listener_port
    Especifica el número de puerto (listener_port) que va a usar el agente de escucha de un grupo de disponibilidad especificado por una cláusula WITH IP. PORT es opcional.

    Se admite el número de puerto predeterminado, 1433. Sin embargo, si le preocupa la seguridad, le recomendamos que use otro número de puerto.

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

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

Requisitos previos y restricciones

Para obtener información sobre los requisitos previos para la creación de un grupo de disponibilidad, vea Requisitos previos, restricciones y recomendaciones para Grupos de disponibilidad AlwaysOn (SQL Server).

Para obtener información acerca de las restricciones sobre las instrucciones AVAILABILITY GROUP de Transact-SQL, vea Información general sobre instrucciones Transact-SQL para grupos de disponibilidad de AlwaysOn (SQL Server).

Seguridad

Permisos

Se requiere la pertenencia al rol fijo de servidor sysadmin y el permiso de servidor CREATE AVAILABILITY GROUP, el permiso ALTER ANY AVAILABILITY GROUP o el permiso CONTROL SERVER.

Ejemplos

A.Configurar la copia de seguridad en réplicas secundarias, la directiva flexible de conmutación por error y el acceso de conexión

En el ejemplo siguiente se crea un grupo de disponibilidad denominado MyAg para dos bases de datos de usuario, ThisDatabase y ThatDatabase. En la tabla siguiente se resumen los valores especificados para las opciones establecidas en el grupo de disponibilidad en conjunto.

Opción de grupo

Configuración

Descripción

AUTOMATED_BACKUP_PREFERENCE

SECONDARY

Esta preferencia de copia de seguridad automatizada indica que las copias de seguridad deben aparecer en una réplica secundaria, excepto cuando la réplica principal es la única réplica en línea (este es el comportamiento predeterminado). Para que el valor de AUTOMATED_BACKUP_PREFERENCE surta efecto, debe crear scripts de trabajos de copia de seguridad en las bases de datos de disponibilidad para tener en cuenta la preferencia de copia de seguridad automatizada.

FAILURE_CONDITION_LEVEL

3

Este nivel de condición de error especifica que se debe iniciar una conmutación por error automática en caso de errores internos graves de SQL Server, como bloqueos por subprocesos huérfanos, infracciones graves de acceso de escritura o un volcado excesivo.

HEALTH_CHECK_TIMEOUT

600000

Este valor de tiempo de espera correcto, 60 segundos, especifica que el clúster de WSFC esperará 60000 milisegundos a que el procedimiento almacenado del sistema sp_server_diagnostics devuelva información de estado del servidor sobre una instancia del servidor que hospeda una réplica de confirmación sincrónica automática antes de que el clúster suponga que la instancia del servidor host es lenta o se ha bloqueado. (El valor predeterminado es 30000 segundos).

Tres réplicas de disponibilidad se hospedan en las instancias del servidor predeterminadas en los equipos denominados COMPUTER01, COMPUTER02 y COMPUTER03. En la tabla siguiente se resumen los valores especificados para las opciones de cada réplica.

Opción de réplica

Valor en COMPUTER01

Valor en COMPUTER02

Valor en COMPUTER03

Descripción

ENDPOINT_URL

TCP://COMPUTER01:5022

TCP://COMPUTER02:5022

TCP://COMPUTER03:5022

En este ejemplo, los sistemas están en el mismo dominio, por lo que las direcciones URL de extremo pueden usar el nombre del equipo como dirección del sistema.

AVAILABILITY_MODE

SYNCHRONOUS_COMMIT

SYNCHRONOUS_COMMIT

ASYNCHRONOUS_COMMIT

Dos de las réplicas usan el modo de confirmación sincrónica. Cuando están sincronizadas, admiten la conmutación por error sin pérdida de datos. La tercera réplica, que usa el modo de disponibilidad de confirmación asincrónica.

FAILOVER_MODE

AUTOMATIC

AUTOMATIC

MANUAL

Las réplicas de confirmación sincrónica admiten la conmutación automática por error y la conmutación por error manual planeada. La réplica en modo de disponibilidad de confirmación sincrónica solo admite la conmutación por error manual forzada.

BACKUP_PRIORITY

30

30

90

Una prioridad más alta, 90, se asigna a la réplica de confirmación asincrónica que a las réplicas de confirmación sincrónica. Las copias de seguridad tenderán a aparecer en la instancia del servidor que hospeda la réplica de confirmación asincrónica.

SECONDARY_ROLE

( ALLOW_CONNECTIONS = NO,

READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01:1433' )

( ALLOW_CONNECTIONS = NO,

READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' )

( ALLOW_CONNECTIONS = READ_ONLY, READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' )

Solo la réplica de confirmación asincrónica actúa como réplica secundaria legible.

Especifica el nombre del equipo y el número de puerto del motor de base de datos predeterminado (1433).

Este argumento es opcional.

PRIMARY_ROLE

( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = (COMPUTER03) )

( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = (COMPUTER03) )

( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = NONE )

En el rol principal, todas las réplicas rechazarán los intentos de conexión de lectura.

Las solicitudes de conexión de intento de lectura se enrutarán a COMPUTER03 si la réplica local se ejecuta en el rol secundario. Cuando la réplica se ejecuta en rol principal, el enrutamiento de solo lectura está deshabilitado.

Este argumento es opcional.

SESSION_TIMEOUT

10

10

10

Este ejemplo especifica el valor de tiempo de espera predeterminado (10). Este argumento es opcional.

Finalmente, el ejemplo especifica la cláusula opcional LISTENER para crear un agente de escucha de grupo de disponibilidad para el nuevo grupo de disponibilidad. Un nombre DNS único, MyAgListenerIvP6, se especifica para este agente de escucha. Las dos réplicas están en varias subredes, por lo que el agente de escucha debe usar direcciones IP estáticas. Para cada una de las dos réplicas de disponibilidad, la cláusula WITH IP especifica una dirección IP estática, 2001:4898:f0:f00f::cf3c y 2001:4898:e0:f213::4ce2, que usan el formato IPv6. Este ejemplo especifica también que se use el argumento opcional PORT para definir el puerto 60173 como puerto de escucha.

CREATE AVAILABILITY GROUP MyAg 
   WITH (
      AUTOMATED_BACKUP_PREFERENCE = SECONDARY,
      FAILURE_CONDITION_LEVEL  =  3, 
      HEALTH_CHECK_TIMEOUT = 600000
       )
   
   FOR 
      DATABASE  ThisDatabase, ThatDatabase 
   REPLICA ON 
      'COMPUTER01' WITH 
         (
         ENDPOINT_URL = 'TCP://COMPUTER01:5022',
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
         FAILOVER_MODE = AUTOMATIC,
         BACKUP_PRIORITY = 30,
         SECONDARY_ROLE (ALLOW_CONNECTIONS = NO, 
            READ_ONLY_ROUTING_LIST = (COMPUTER03) ), 
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE, 
            READ_ONLY_ROUTING_LIST = (COMPUTER03) ),
         SESSION_TIMEOUT = 10
         ), 
         
      'COMPUTER02' WITH 
         (
         ENDPOINT_URL = 'TCP://COMPUTER02:5022',
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
         FAILOVER_MODE = AUTOMATIC,
         BACKUP_PRIORITY = 30,
         SECONDARY_ROLE (ALLOW_CONNECTIONS = NO, 
            READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' ),
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE, 
            READ_ONLY_ROUTING_LIST = (COMPUTER03) ),
         SESSION_TIMEOUT = 10
         ), 
         
      'COMPUTER03' WITH 
         (
         ENDPOINT_URL = 'TCP://COMPUTER03:5022',
         AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,
         FAILOVER_MODE =  MANUAL,
         BACKUP_PRIORITY = 90,
         SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY, 
            READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' ),
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE, 
            READ_ONLY_ROUTING_LIST = NONE ),
         SESSION_TIMEOUT = 10
         )

LISTENER ‘MyAgListenerIvP6’ ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173 ); 
GO

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

Tareas relacionadas

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

Vea también

Referencia

ALTER AVAILABILITY GROUP (Transact-SQL)

ALTER DATABASE SET HADR (Transact-SQL)

DROP AVAILABILITY GROUP (Transact-SQL)

Conceptos

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

Información general de los grupos de disponibilidad AlwaysOn (SQL Server)

Agentes de escucha del grupo de disponibilidad, conectividad de cliente y conmutación por error de una aplicación (SQL Server)