Pruebas de Amazon Aurora MySQL por medio de consultas de inserción de errores - Amazon Aurora

Pruebas de Amazon Aurora MySQL por medio de consultas de inserción de errores

Para probar la tolerancia a errores de su clúster de base de datos de Aurora MySQL, utilice las consultas de inserción de errores. Las consultas de inyección de errores se emiten como comandos SQL a una instancia Amazon Aurora. Permiten programar una simulación de uno de los siguientes eventos:

  • Un bloqueo de una instancia de base de datos de escritor o lector

  • Un error de una réplica de Aurora

  • Un error de disco

  • Congestión del disco

Cuando una consulta de inserción de errores especifica un bloqueo, fuerza un bloqueo de la instancia de base de datos de Aurora MySQL. Las otras consultas de inserción de errores producen simulaciones de eventos de error, pero no hacen que el evento ocurra. Cuando se envía una consulta de inserción de errores, se especifica también la cantidad de tiempo que debe durar la simulación del evento de error.

Puede enviar una consulta de inserción de errores a una de las instancias de réplica de Aurora conectándose al punto de enlace de la réplica de Aurora. Para obtener más información, consulte Conexiones de puntos de conexión de Amazon Aurora.

La ejecución de consultas de inyección de errores requiere todos los privilegios del usuario maestro. Para obtener más información, consulte Privilegios de la cuenta de usuario maestro.

Prueba de un bloqueo de instancia

Puede forzar el bloqueo de una instancia de Amazon Aurora con la consulta de inserción de errores ALTER SYSTEM CRASH.

En esta consulta de inserción de errores no se produce una conmutación por error. Si quiere probar una conmutación por error, puede elegir la acción de instancia Failover (Conmutación por error) para el clúster de base de datos en la consola de RDS o usar el comando failover-db-clúster de AWS CLI o la operación FailoverDBclúster de la API de RDS.

Sintaxis

ALTER SYSTEM CRASH [ INSTANCE | DISPATCHER | NODE ];

Opciones

La consulta de inserción de errores toma uno de los siguientes tipos de bloqueos:

  • INSTANCE: se simula un bloqueo de la base de datos compatible con MySQL para la instancia de Amazon Aurora.

  • DISPATCHER: se simula un bloqueo del distribuidor de la instancia de escritor del clúster de base de datos de Aurora. El distribuidor escribe actualizaciones en el volumen de clúster de un clúster de base de datos Amazon Aurora.

  • NODE: se simula un bloqueo de la base de datos compatible con MySQL y del distribuidor para la instancia de Amazon Aurora. En esta simulación de inserción de errores también se elimina la caché.

El tipo de bloqueo predeterminado es INSTANCE.

Prueba de un error de una réplica de Aurora

Puede simular el error de una réplica de Aurora con la consulta de inserción de errores ALTER SYSTEM SIMULATE READ REPLICA FAILURE.

Un error de réplica de Aurora bloquea todas las solicitudes de la instancia del escritor realizadas a una réplica de Aurora o a todas las réplicas de Aurora del clúster de base de datos durante un intervalo de tiempo especificado. Cuando se complete el intervalo de tiempo, las réplicas de Aurora afectadas se sincronizarán automáticamente con la instancia de escritor.

Sintaxis

ALTER SYSTEM SIMULATE percentage_of_failure PERCENT READ REPLICA FAILURE [ TO ALL | TO "replica name" ] FOR INTERVAL quantity { YEAR | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND };

Opciones

Esta consulta de inserción de errores toma los siguientes parámetros:

  • percentage_of_failure: el porcentaje de solicitudes que se deben bloquear durante el evento de error. Puede ser un valor doble entre 0 y 100. Si se especifica 0, no se bloquea ninguna solicitud. Si se especifica 100, se bloquean todas las solicitudes.

  • Tipo de falla: el tipo de error que se va a simular. Especifique TO ALL para simular errores para todas las réplicas de Aurora del clúster de base de datos. Especifique TO y el nombre de una réplica de Aurora para simular un error de la réplica de Aurora única. El tipo de error predeterminado es TO ALL.

  • quantity: la cantidad de tiempo que debe durar la simulación del error de la réplica de Aurora. El intervalo es una cantidad seguida por una unidad de tiempo. La simulación durará esa cantidad de la unidad especificada. Por ejemplo, 20 MINUTE hará que la simulación se ejecute durante 20 minutos.

    nota

    Debe tener cuidado al especificar el intervalo de tiempo del evento de error de la réplica de Aurora. Si especifica un intervalo de tiempo demasiado largo y la instancia de escritor escribe una gran cantidad de datos durante el evento de error, su clúster de base de datos de Aurora es posible que asuma que la réplica de Aurora se ha bloqueado y reemplazarla.

Prueba de un error de disco

Puede simular un error de disco para un clúster de base de datos Aurora con la consulta de inserción de errores ALTER SYSTEM SIMULATE DISK FAILURE.

Durante la simulación de un error de disco, el clúster de base de datos de Aurora marca de forma aleatoria los segmentos de disco como defectuosos. Las solicitudes que lleguen a esos segmentos se bloquearán mientras dure la simulación.

Sintaxis

ALTER SYSTEM SIMULATE percentage_of_failure PERCENT DISK FAILURE [ IN DISK index | NODE index ] FOR INTERVAL quantity { YEAR | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND };

Opciones

Esta consulta de inserción de errores toma los siguientes parámetros:

  • percentage_of_failure: el porcentaje del disco que se debe marcar como defectuoso durante el evento de error. Puede ser un valor doble entre 0 y 100. Si se especifica 0, ninguna parte del disco se marca como defectuosa. Si se especifica 100, todo el disco se marca como defectuoso.

  • DISK index: un bloque lógico de datos concreto para el que se debe simular el evento de error. Si se sobrepasa el rango de bloques de datos lógicos disponibles, aparece un error que indica el valor máximo del índice que se puede especificar. Para obtener más información, consulte Visualización del estado del volumen para un clúster de base de datos de Aurora MySQL.

  • NODE index: un nodo de almacenamiento concreto para el que se debe simular el evento de error. Si se sobrepasa el rango de nodos de almacenamiento disponibles, aparece un error que indica el valor máximo del índice que se puede especificar. Para obtener más información, consulte Visualización del estado del volumen para un clúster de base de datos de Aurora MySQL.

  • quantity: la cantidad de tiempo que debe durar la simulación del error de disco. El intervalo es una cantidad seguida por una unidad de tiempo. La simulación durará esa cantidad de la unidad especificada. Por ejemplo, 20 MINUTE hará que la simulación se ejecute durante 20 minutos.

Prueba de congestión del disco

Puede simular un error de disco para un clúster de base de datos Aurora con la consulta de inserción de errores ALTER SYSTEM SIMULATE DISK CONGESTION.

Durante la simulación de congestión del disco, el clúster de base de datos de Aurora marca de forma aleatoria los segmentos de disco como congestionados. Las solicitudes que lleguen a esos segmentos se retrasarán entre el mínimo especificado y el tiempo de demora máximo mientras dure la simulación.

Sintaxis

ALTER SYSTEM SIMULATE percentage_of_failure PERCENT DISK CONGESTION BETWEEN minimum AND maximum MILLISECONDS [ IN DISK index | NODE index ] FOR INTERVAL quantity { YEAR | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND };

Opciones

Esta consulta de inserción de errores toma los siguientes parámetros:

  • percentage_of_failure: el porcentaje del disco que se debe marcar como congestionado durante el evento de error. Puede ser un valor doble entre 0 y 100. Si se especifica 0, ninguna parte del disco se marca como congestionada. Si se especifica 100, todo el disco se marca como congestionado.

  • DISK index o:NODE index un disco o nodo concreto para el que se debe simular el evento de error. Si se sobrepasa el rango de índices para el disco o el nodo, aparece un error que indica el valor máximo del índice que se puede especificar.

  • minimum y:maximum la cantidad mínima y máxima de demora de la congestión en milisegundos. Los segmentos de disco marcados como congestionados se retrasarán una cantidad de tiempo aleatoria del rango comprendido entre la cantidad mínima y máxima de milisegundos mientras dure la simulación.

  • quantity: la cantidad de tiempo durante la que se debe simular la congestión del disco. El intervalo es una cantidad seguida por una unidad de tiempo. La simulación durará esa cantidad de la unidad de tiempo especificada. Por ejemplo, 20 MINUTE hará que la simulación se ejecute durante 20 minutos.