Conmutación por error de una instancia de base de datos multi-AZ para Amazon RDS - Amazon Relational Database Service

Conmutación por error de una instancia de base de datos multi-AZ para Amazon RDS

Si se produce una interrupción planificada o no planificada de la instancia de base de datos a causa de un defecto de la infraestructura, Amazon RDS cambia automáticamente a una réplica en espera de otra zona de disponibilidad.

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 principal dejó de estar disponible. Los tiempos de conmutación por error suelen estar entre 60–120 segundos. Sin embargo, las transacciones grandes o un proceso de recuperación largo pueden aumentar el tiempo de conmutación por error. 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.

nota

Puede forzar una conmutación por error manualmente cuando reinicie una instancia de base de datos multi-AZ. Para obtener más información, consulte Reinicio de una instancia de base de datos.

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. La instancia de base de datos principal conmuta automáticamente a la réplica en espera si se da cualquiera de las condiciones descritas en la siguiente tabla. Puede ver los motivos de la conmutación por error en el registro de eventos.

Motivo de la conmutación por error Descripción
Se le aplican parches al sistema operativo subyacente a la instancia de base de datos de RDS en una operación sin conexión.

Se ha desencadenado una conmutación por error durante la ventana de mantenimiento para un parche del sistema operativo o una actualización de seguridad.

Para obtener más información, consulte Mantenimiento de una instancia de base de datos.

El host principal de la instancia multi-AZ de RDS no está en buen estado. La implementación de una instancia de base de datos Multi-AZ detectó una instancia de base de datos principal deteriorada y se produjo una conmutación por error.
El host principal de la instancia multi-AZ de RDS es inaccesible debido a la pérdida de conectividad de red.

El monitoreo de RDS detectó un error de accesibilidad de la red a la instancia de base de datos principal y desencadenó una conmutación por error.

El cliente modificó la instancia de RDS.

Una modificación de la instancia de base de datos de RDS desencadenó una conmutación por error.

Para obtener más información, consulte Modificación de una instancia de base de datos de Amazon RDS.

La instancia principal multi-AZ de RDS está ocupada y no responde.

La instancia de base de datos principal no responde. Le recomendamos que realice las siguientes acciones:

Para obtener más información sobre estas recomendaciones, consulte Supervisión de herramientas de Amazon RDS y Prácticas recomendadas para Amazon RDS.

El volumen de almacenamiento subyacente al host principal de la instancia multi-AZ de RDS tuvo un error. La implementación de una instancia de base de datos Multi-AZ detectó un problema de almacenamiento en la instancia de base de datos principal y se produjo una conmutación por error.
El usuario solicitó una conmutación por error de la instancia de base de datos.

Reinició la instancia de base de datos y eligió Reboot with failover (Reiniciar con conmutación por error).

Para obtener más información, consulte Reinicio de una instancia de base de datos.

Para determinar si se produjo una conmutación por error en la instancia 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.

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

  • Puede ver el estado actual de la implementación de una instancia de base de datos Multi-AZ mediante la consola de RDS o las operaciones de la API.

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 en espera. 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é.

Para obtener el TTL predeterminado de JVM, recupere el valor de la propiedad networkaddress.cache.ttl:

String ttl = java.security.Security.getProperty("networkaddress.cache.ttl");
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");