Configurar la directiva de conmutación por error flexible para las condiciones de control de la conmutación automática por error (grupos de disponibilidad AlwaysOn)

En este tema se describe cómo configurar la directiva de conmutación por error flexible para un grupo de disponibilidad AlwaysOn mediante Transact-SQL o PowerShell en SQL Server 2012. Una directiva de conmutación por error flexible proporciona mayor control sobre las condiciones que produce una conmutación automática por error para un grupo de disponibilidad. Al cambiar las condiciones de error que activan una conmutación automática por error y la frecuencia de comprobaciones de estado, se puede aumentar o reducir la probabilidad de una conmutación automática por error que sea compatible con su SLA por tener alta disponibilidad.

  • Antes de empezar:

    Limitaciones de la conmutación automática por error

    Requisitos previos

    Seguridad

  • Para configurar la directiva flexible de conmutación por error mediante:

    Transact-SQL

    PowerShell

    [!NOTA]

    La directiva flexible de conmutación por error de un grupo de disponibilidad no se puede configurar utilizando SQL Server Management Studio.

Antes de empezar

Limitaciones de la conmutación automática por error

  • Para que se produzca la conmutación automática por error, la réplica principal actual y una réplica secundaria deben estar configuradas para el modo de confirmación sincrónica con conmutación automática por error, y la réplica secundaria debe estar sincronizada con la réplica principal.

  • Si un grupo de disponibilidad supera su umbral de error de WSFC, el clúster de WSFC no intentará una conmutación automática por error para dicho grupo. Además, el grupo de recursos de WSFC del grupo de disponibilidad permanece en un estado de error hasta que el administrador del clúster conecta manualmente el grupo de recursos con error o el administrador de la base de datos realiza una conmutación por error manual del grupo de disponibilidad. El umbral de error de WSFC se define como el número máximo de errores admitidos para el grupo de disponibilidad en un período de tiempo determinado. El período predeterminado es seis horas, y el valor predeterminado del número máximo de errores durante este período es n-1, donde n es el número de nodos de WSFC. Para cambiar los valores del umbral de error de un grupo de disponibilidad determinado, use la consola del administrador de conmutación por error de WSFC.

Requisitos previos

  • Debe estar conectado a la instancia del servidor que hospeda la réplica principal.

Seguridad

Permisos

Tarea

Permisos

Para configurar la directiva flexible de conmutación por error para un nuevo grupo de disponibilidad

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.

Para modificar la directiva de un grupo de disponibilidad

Se requiere el permiso ALTER AVAILABILITY GROUP en el grupo de disponibilidad, el permiso CONTROL AVAILABILITY GROUP, el permiso ALTER ANY AVAILABILITY GROUP o el permiso CONTROL SERVER.

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

Usar Transact-SQL

Para configurar la directiva flexible de conmutación por error

  1. Conéctese a la instancia del servidor que hospeda la réplica principal.

  2. Para un nuevo grupo de disponibilidad, use la instrucción CREATE AVAILABILITY GROUP Transact-SQL. Si va a modificar un grupo de disponibilidad existente, use la instrucción ALTER AVAILABILITY GROUP Transact-SQL.

    • Para establecer el nivel de la condición de conmutación por error, utilice la opción FAILURE_CONDITION_LEVEL = n, donde n es un entero entre 1 y 5.

      Por ejemplo, la siguiente instrucción de Transact-SQL cambia el nivel de condición de error de un grupo de disponibilidad existente, AG1, al nivel uno:

      ALTER AVAILABILITY GROUP AG1 SET (FAILURE_CONDITION_LEVEL = 1); 
      

      La relación de estos valores enteros con los niveles de condición de error es la siguiente:

      Valor de Transact-SQL

      Nivel

      La conmutación por error iniciada es automática cuando se produce…

      1

      Uno

      Por inactividad de servidor. El servicio SQL Server se detiene debido a una conmutación por error o reinicio.

      2

      Dos

      Al dejar de responder el servidor. Se cumple cualquier condición de un valor inferior, el servicio SQL Server se conecta al clúster y se supera el umbral del tiempo de espera de comprobación de estado, o la réplica principal actual está en un estado de error.

      3

      Tres

      En errores de servidor críticos. Se cumple cualquier condición de un valor inferior o se produce un error de servidor crítico interno.

      Es el nivel predeterminado.

      4

      Cuatro

      En errores de servidor moderados. Se cumple cualquier condición de un valor inferior o se produce un error de servidor moderado.

      5

      Cinco

      En cualquier condición de error apta. Se cumple cualquier condición de un valor inferior o se produce una condición de error adecuada.

      Para obtener más información acerca de los niveles de condición de conmutación por error, vea Directiva de conmutación por error flexible para conmutación automática por error de un grupo de disponibilidad (SQL Server).

    • Para configurar el umbral del tiempo de espera de comprobación de estado, use la opción HEALTH_CHECK_TIMEOUT = n, donde n es un entero de 15000 milisegundos (15 segundos) a 4294967295 milisegundos. El valor predeterminado es 30000 milisegundos (30 segundos).

      Por ejemplo, la siguiente instrucción Transact-SQL cambia el umbral de tiempo de espera de comprobación de estado de un grupo de disponibilidad disponible, AG1, 60.000 milisegundos (un minuto).

      ALTER AVAILABILITY GROUP AG1 SET (HEALTH_CHECK_TIMEOUT = 60000);
      

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

Usar PowerShell

Para configurar la directiva flexible de conmutación por error

  1. Establezca el valor predeterminado (cd) en la instancia del servidor que hospeda la réplica de disponibilidad principal.

  2. Para agregar una réplica de disponibilidad a un grupo de disponibilidad, use el cmdlet New-SqlAvailabilityGroup. Para modificar una réplica de disponibilidad existente, use el cmdlet Set-SqlAvailabilityGroup.

    • Para establecer el nivel de condición de conmutación por error, utilice el parámetro FailureConditionLevel level, donde level es uno de los siguientes valores:

      Valor

      Nivel

      La conmutación por error iniciada es automática cuando se produce…

      OnServerDown

      Uno

      Por inactividad de servidor. El servicio SQL Server se detiene debido a una conmutación por error o reinicio.

      OnServerUnresponsive

      Dos

      Al dejar de responder el servidor. Se cumple cualquier condición de un valor inferior, el servicio SQL Server se conecta al clúster y se supera el umbral del tiempo de espera de comprobación de estado, o la réplica principal actual está en un estado de error.

      OnCriticalServerError

      Tres

      En errores de servidor críticos. Se cumple cualquier condición de un valor inferior o se produce un error de servidor crítico interno.

      Es el nivel predeterminado.

      OnModerateServerError

      Cuatro

      En errores de servidor moderados. Se cumple cualquier condición de un valor inferior o se produce un error de servidor moderado.

      OnAnyQualifiedFailureConditions

      Cinco

      En cualquier condición de error apta. Se cumple cualquier condición de un valor inferior o se produce una condición de error adecuada.

      Para obtener más información acerca de los niveles de condición de conmutación por error, vea Directiva de conmutación por error flexible para conmutación automática por error de un grupo de disponibilidad (SQL Server).

      Por ejemplo, el siguiente comando cambia el nivel de condición de error de un grupo de disponibilidad existente, AG1 al nivel uno.

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAg ` 
      -FailureConditionLevel OnServerDown
      
    • Para establecer el umbral de tiempo de espera de comprobación de estado, use el parámetro HealthCheckTimeout n, donde n es un entero de 15000 milisegundos (15 segundos) a 4294967295 milisegundos. El valor predeterminado es 30000 milisegundos (30 segundos).

      Por ejemplo, el siguiente comando cambia el umbral de tiempo de espera de comprobación de estado de un grupo de disponibilidad disponible, AG1, a 120.000 milisegundos (dos minutos).

      Set-SqlAvailabilityGroup ` 
      -Path SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MyAG ` 
      -HealthCheckTimeout 120000
      

[!NOTA]

Para ver la sintaxis de un cmdlet, use el cmdlet Get-Help en el entorno de SQL Server PowerShell. Para obtener más información, vea Obtener ayuda de SQL Server PowerShell.

Para configurar y usar el proveedor de SQL Server PowerShell

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

Vea también

Referencia

sp_server_diagnostics (Transact-SQL)

Conceptos

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

Modos de disponibilidad (grupos de disponibilidad AlwaysOn)

Conmutación por error y modos de conmutación por error (grupos de disponibilidad AlwaysOn)

Clústeres de conmutación por error de Windows Server (WSFC) con SQL Server

Directiva de conmutación por error para instancias de clústeres de conmutación por error