Test d'Amazon Aurora MySQL à l'aide de requêtes d'injection d'erreurs - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Test d'Amazon Aurora MySQL à l'aide de requêtes d'injection d'erreurs

Vous pouvez tester la tolérance aux pannes de votre cluster de bases de données Aurora MySQL à l'aide des requêtes d'injection d'erreurs. Les requêtes d'injection d'erreurs sont émises sous forme de commandes SQL à une instance Amazon Aurora. Elles vous permettent de programmer une simulation de l'un des événements suivants :

  • Un incident de l'instance de base de données du dispositif d'écriture ou de lecture

  • Un échec d'un réplica Aurora

  • Une défaillance disque

  • Une surcharge disque

Quand une requête d'injection d'erreurs spécifie un incident, elle provoque un incident de l'instance de base de données Aurora MySQL. Les autres requêtes d'injection d'erreurs se traduisent par des simulations d'événements d'erreur, mais n'entraînent pas la manifestation de l'événement. Lorsque vous soumettez une requête d'injection d'erreurs, vous pouvez aussi spécifier la durée pendant laquelle la simulation de l'événement d'erreur peut se produire.

Vous pouvez soumettre une requête d'injection d'erreurs à l'une de vos instances de réplica Aurora en vous connectant au point de terminaison du réplica Aurora. Pour de plus amples informations, veuillez consulter Gestion des connexions Amazon Aurora.

L'exécution de requêtes d'injection d'erreurs nécessite tous les privilèges d'utilisateur principal. Pour de plus amples informations, veuillez consulter Privilèges du compte utilisateur principal.

Test d'un incident d'instance

Vous pouvez forcer un incident d'instance Amazon Aurora à l'aide de la requête d'injection d'erreurs ALTER SYSTEM CRASH.

Pour cette requête d'injection d'erreurs, un basculement ne se produira pas. Si vous souhaitez tester un basculement, vous pouvez choisir l'action d'instance Failover (Basculement) pour votre cluster de base de données dans la console RDS, ou utiliser la commande de l'AWS CLI failover-db-cluster ou l'opération d'API RDS FailoverDBCluster.

Syntaxe

ALTER SYSTEM CRASH [ INSTANCE | DISPATCHER | NODE ];

Options

Cette requête accepte l'un des types d'incident suivants :

  • INSTANCE — Simulation d'un incident de la base de données compatible MySQL pour l'instance Amazon Aurora.

  • DISPATCHER — Simulation d'un incident lié au répartiteur sur l'instance de scripteur pour le cluster de base de données Aurora. Le répartiteur écrit les mises à jour sur le volume de cluster d'un cluster de base de données Amazon Aurora.

  • NODE — Simulation d'un incident de la base de données compatible MySQL et du répartiteur pour l'instance Amazon Aurora. Pour cette simulation d'injection d'erreurs, le cache est également supprimé.

Le type d'incident par défaut est INSTANCE.

Test d'une défaillance d'un réplica Aurora

Vous pouvez simuler l'échec d'un réplica Aurora à l'aide de la fonction de requête d'injection d'erreurs ALTER SYSTEM SIMULATE READ REPLICA FAILURE.

L'échec d'un réplica Aurora bloque toutes les demandes provenant de l'instance d'enregistreur et adressées à un réplica Aurora ou à tous les réplicas Aurora du cluster de bases de données pendant un intervalle de temps spécifié. Une fois l'intervalle écoulé, les réplicas Aurora affectés sont automatiquement synchronisés avec l'instance maître.

Syntaxe

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 };

Options

La requête d'injection d'erreurs accepte les paramètres suivants :

  • percentage_of_failure — Pourcentage de demandes de blocage pendant l'événement d'échec. La valeur peut être un nombre double compris entre 0 et 100. Si vous spécifiez 0, aucune demande n'est bloquée. Si vous spécifiez 100, toutes les demandes sont bloquées.

  • Failure type (Type d'échec) — Type d'échec à simuler. Spécifiez TO ALL pour simuler des échecs pour tous les réplicas Aurora dans le cluster de base de données. Spécifiez TO et le nom du réplica Aurora pour simuler l'échec d'un réplica Aurora unique. Le type d'incident par défaut est TO ALL.

  • quantity — Durée pendant laquelle simuler l'échec du réplica Aurora. L'intervalle est une durée suivie d'une unité de temps. La simulation intervient pendant la durée spécifiée par l'unité. Par exemple, 20 MINUTE entraîne l'exécution de la simulation pendant 20 minutes.

    Note

    Soyez vigilant lorsque vous spécifiez l'intervalle de l'événement d'erreur du réplica Aurora. Si vous spécifiez un intervalle trop long et que votre instance d'enregistreur écrit une importante quantité de données pendant l'échec, votre cluster Aurora DB peut considérer que votre réplica Aurora s'est bloqué et le remplacer.

Test d'une défaillance disque

Vous pouvez simuler l'échec d'un disque pour un cluster de base de données Aurora DB à l'aide de la requête d'injection d'erreurs ALTER SYSTEM SIMULATE DISK FAILURE.

Pendant la simulation d'un échec du disque, le cluster de base de données Aurora marque de façon aléatoire des segments de disque comme défectueux. Les demandes adressées à ces segments seront bloquées pendant la durée de la simulation.

Syntaxe

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 };

Options

La requête d'injection d'erreurs accepte les paramètres suivants :

  • percentage_of_failure — Pourcentage du disque à marquer comme défaillant pendant l'événement d'échec. La valeur peut être un nombre double compris entre 0 et 100. Si vous spécifiez 0, aucune partie du disque n'est marquée comme défaillante. Si vous spécifiez 100, la totalité du disque est marquée comme défaillante.

  • DISK index — Bloc de données logique spécifique pour lequel simuler l'événement d'échec. Si vous dépassez la plage de blocs de données logiques disponibles, vous recevez une erreur qui vous indique la valeur d'index maximale que vous pouvez spécifier. Pour plus d'informations, consultez Affichage du statut du volume pour un cluster de base de données Aurora MySQL.

  • NODE index — Nœud de stockage spécifique pour lequel simuler l'événement d'échec. Si vous dépassez la plage de nœuds de stockage disponibles, vous recevez une erreur qui vous indique la valeur d'index maximale que vous pouvez spécifier. Pour plus d'informations, consultez Affichage du statut du volume pour un cluster de base de données Aurora MySQL.

  • quantity — Durée pendant laquelle l'échec de disque est simulé. L'intervalle est une durée suivie d'une unité de temps. La simulation intervient pendant la durée spécifiée par l'unité. Par exemple, 20 MINUTE entraîne l'exécution de la simulation pendant 20 minutes.

Test d'une surcharge disque

Vous pouvez simuler l'échec d'un disque pour un cluster de base de données Aurora à l'aide de la requête d'injection d'erreurs ALTER SYSTEM SIMULATE DISK CONGESTION.

Pendant la simulation d'une surcharge du disque, le cluster de base de données Aurora marque de façon aléatoire les segments disque comme surchargés. Les demandes adressées à ces segments sont retardées entre le délai minimal et le délai maximal spécifiés de la durée de la simulation.

Syntaxe

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 };

Options

La requête d'injection d'erreurs accepte les paramètres suivants :

  • percentage_of_failure — Pourcentage du disque à marquer comme surchargé pendant l'événement d'échec. La valeur peut être un nombre double compris entre 0 et 100. Si vous spécifiez 0, aucune partie du disque n'est marquée comme surchargée. Si vous spécifiez 100, la totalité du disque est marquée comme surchargée.

  • DISK index ou NODE index — Disque ou nœud spécifique pour lequel l'événement d'échec est simulé. Si vous dépassez la plage d'index du disque ou du nœud, vous recevez une erreur qui vous indique la valeur d'index maximale que vous pouvez spécifier.

  • minimum et maximum — Durées minimale et maximale du délai de surcharge, en millisecondes. Les segments de disque marqués comme surchargés sont retardés pendant une durée aléatoire comprise entre la durée minimale et la durée maximale en millisecondes de la simulation.

  • quantity — Durée pendant laquelle la surcharge du disque est simulée. L'intervalle est une durée suivie d'une unité de temps. La simulation intervient pendant la durée spécifiée par l'unité de temps. Par exemple, 20 MINUTE entraîne l'exécution de la simulation pendant 20 minutes.