Conmutación por error de un clúster de base de datos multi-AZ para Amazon RDS - Amazon Relational Database Service

Conmutación por error de un clúster de base de datos multi-AZ para Amazon RDS

Si hay una interrupción planificada o no planificada de su instancia de base de datos de escritor en un clúster de base de datos Multi-AZ, Amazon RDS conmuta por error automáticamente a una instancia de base de datos de lector en una zona de disponibilidad diferente. Esto garantiza una alta disponibilidad con una interrupción mínima. Las conmutaciones por error pueden producirse durante errores de hardware, problemas de red o solicitudes manuales. En este tema, se describen la detección automática de errores, la secuencia de eventos durante la conmutación por error y su impacto en las operaciones de lectura y escritura. También se indican prácticas recomendadas para supervisar y minimizar los tiempos de conmutación por error.

El tiempo requerido para completar la conmutación por error dependerá de la actividad de la base de datos y de otras condiciones existentes cuando la instancia de base de datos del escritor dejó de estar disponible. Los tiempos de conmutación por error suelen ser inferiores a 35 segundos. La conmutación por error se completa cuando ambas instancias de base de datos del lector han aplicado transacciones pendientes del escritor con errores. Cuando la conmutación por error se haya completado, puede hacer falta más tiempo para que la consola de RDS refleje la nueva zona de disponibilidad.

Conmutaciones por error automáticas

Amazon RDS gestiona las conmutaciones por error automáticamente para que sea posible reanudar las operaciones de la base de datos lo antes posible sin intervención administrativa. Para llevar a cabo la conmutación por error, la instancia de base de datos del escritor cambia automáticamente a una instancia de base de datos del lector.

Conmutación por error manual de un clúster de base de datos Multi-AZ

Si lleva a cabo una conmutación por error manual de un clúster de base de datos multi-AZ, RDS primero termina la instancia de base de datos principal. Luego, el sistema de monitorización interna detecta que la instancia de base de datos principal no se encuentra en buen estado y promueve una instancia de base de datos de réplica legible. Los tiempos de conmutación por error suelen ser inferiores a 35 segundos.

Puede llevar a cabo una conmutación por error manual de un clúster de base de datos Multi-AZ mediante la AWS Management Console, la AWS CLI o la API de RDS.

Para llevar a cabo una conmutación por error manual de un clúster de base de datos Multi-AZ
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. En el panel de navegación, seleccione Databases (Bases de datos).

  3. Elija el clúster de base de datos Multi-AZ que quiere conmutar por error.

  4. En Actions (Acciones), elija Failover (conmutación por error).

    Aparece la página Conmutar por error el clúster de base de datos.

  5. Elija Failover (Conmutación por error) para confirmar la conmutación por error manual.

Para llevar a cabo una conmutación por error manual de un clúster de base de datos Multi-AZ, utilice el comando de la AWS CLI failover-db-cluster.

aws rds failover-db-cluster --db-cluster-identifier mymultiazdbcluster

Para llevar a cabo manualmente la conmutación por error de un clúster de base de datos Multi-AZ, llame a la API de Amazon RDS FailoverDBCluster y especifique la DBClusterIdentifier.

Determinar si se ha llevado a cabo una conmutación por error en un clúster de base de datos Multi-AZ

Para determinar si se produjo una conmutación por error en el clúster de base de datos Multi-AZ, puede hacer lo siguiente:

  • Configure suscripciones de eventos de base de datos para notificar por correo electrónico o por SMS que se ha iniciado una conmutación por error. Para obtener más información sobre los eventos, consulte Uso de notificaciones de eventos de Amazon RDS.

  • Vea sus eventos de base de datos mediante la consola de Amazon RDS o las operaciones de la API.

  • Vea el estado actual del clúster de base de datos Multi-AZ mediante la consola de Amazon RDS, la AWS CLIy la API de RDS.

Para obtener información acerca de la forma de responder a las conmutaciones por error, reducir el tiempo de recuperación y otras prácticas recomendadas para Amazon RDS, consulte Prácticas recomendadas para Amazon RDS.

Configuración del TTL de JVM para las búsquedas de nombres DNS

El mecanismo de conmutación por error cambia automáticamente el registro del Sistema de nombres de dominio (DNS) de la instancia de base de datos para que apunte a la instancia de base de datos del lector. Como consecuencia, necesita restablecer las conexiones existentes a la instancia de base de datos. En un entorno de máquina virtual Java (JVM), debido al funcionamiento del mecanismo de almacenamiento en caché de DNS, puede ser necesario reconfigurar los ajustes de JVM.

La JVM almacena en caché las búsquedas de nombres DNS. Cuando la JVM resuelve un nombre de host en una dirección IP, almacena en caché la dirección IP durante un periodo de tiempo especificado, conocido como periodo de vida (TTL).

Como los recursos de AWS utilizan entradas de nombres de DNS que cambian de vez en cuando, recomendamos que configure su JVM con un valor de TTL no superior a 60 segundos. Al hacer esto se asegurará de que cuando cambie la dirección IP de un recurso, su aplicación pueda recibir y utilizar la nueva dirección IP del recurso volviendo a consultar el DNS.

En algunas configuraciones de Java, el TTL predeterminado de JVM está establecido de forma que nunca se actualicen las entradas DNS hasta que se reinicie la JVM. Por lo tanto, si la dirección IP de un recurso de AWS cambia mientras la aplicación sigue en ejecución, no podrá utilizar dicho recurso hasta que reinicie manualmente la JVM y se actualice la información de la dirección IP almacenada en caché. En este caso, es fundamental establecer el TTL de la JVM de forma que actualice periódicamente la información de las direcciones IP almacenada en caché.

nota

El TTL predeterminado puede variar en función de la versión de su JVM y de si está instalado un administrador de seguridad. Muchas JVM proporcionan un TTL predeterminado inferior a 60 segundos. Si utiliza una de estas JVM y no usa un administrador de seguridad, puede omitir el resto de este tema. Para obtener más información sobre los administradores de seguridad en Oracle, consulte The Security Manager en la documentación de Oracle.

Para modificar el TTL de la JVM, establezca el valor de la propiedad networkaddress.cache.ttl. Utilice uno de los siguientes métodos, en función de sus necesidades:

  • Para establecer globalmente el valor de la propiedad para todas las aplicaciones que utilizan la JVM, establezca networkaddress.cache.ttl en el archivo $JAVA_HOME/jre/lib/security/java.security.

    networkaddress.cache.ttl=60
  • Para establecer la propiedad localmente sólo para la aplicación, establezca networkaddress.cache.ttl en el código de inicialización de la aplicación antes de establecer las conexiones de red.

    java.security.Security.setProperty("networkaddress.cache.ttl" , "60");