Test di Amazon Aurora My SQL using Fault Injection - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Test di Amazon Aurora My SQL using Fault Injection

È possibile testare la tolleranza agli errori del cluster Aurora My SQL DB utilizzando query di fault injection. Le query di Fault Injection vengono inviate come SQL comandi a un'istanza di Amazon Aurora. Queste funzionalità ti consentono di pianificare l'occorrenza simulata di uno dei seguenti eventi:

  • Un arresto anomalo di un'istanza database di lettura o di scrittura

  • Un errore di una replica Aurora

  • Un errore del disco

  • Una congestione del disco

Quando una query di fault injection specifica un arresto anomalo, impone un arresto anomalo dell'istanza Aurora SQL My DB. Le altre query fault injection generano simulazioni di eventi di errore, ma non causano l'evento. Quando invii una query fault injection, specifichi anche la durata della simulazione dell'evento di errore.

Puoi inviare una query fault injection a una delle istanze di replica Aurora eseguendo la connessione all'endpoint per la replica Aurora. Per ulteriori informazioni, consulta Connessioni endpoint Amazon Aurora.

L'esecuzione di query fault injection richiede tutti i privilegi dell'utente master. Per ulteriori informazioni, consulta Privilegi dell'account utente master.

Test dell'arresto anomalo di un'istanza

Puoi forzare un arresto anomalo di un'istanza Amazon Aurora utilizzando la query fault injection ALTER SYSTEM CRASH.

Per questa query fault injection, non si verificherà un failover. Se desideri testare un failover, puoi scegliere l'azione dell'istanza di failover per il tuo cluster DB nella RDS console oppure utilizzare il failover-db-clusterAWS CLI comando o l'operazione F. ailoverDBCluster RDS API

Sintassi

ALTER SYSTEM CRASH [ INSTANCE | DISPATCHER | NODE ];

Opzioni

Questa query fault injection accetta uno dei seguenti tipi di arresto anomalo:

  • INSTANCE— Viene simulato un arresto anomalo del database SQL compatibile con My per l'istanza Amazon Aurora.

  • DISPATCHER — Viene simulato un arresto anomalo del dispatcher sull'istanza di scrittura per il cluster database di Aurora. Il dispatcher scrive gli aggiornamenti sul volume del cluster per un cluster di database Amazon Aurora.

  • NODE— Viene simulato un arresto anomalo sia del database SQL compatibile con My che del dispatcher per l'istanza Amazon Aurora. Per questa simulazione fault injection, viene inoltre eliminata la cache.

Il tipo di arresto anomalo predefinito è INSTANCE.

Test di un errore di replica Aurora

Puoi simulare l'errore di una replica Aurora mediante la query fault injection ALTER SYSTEM SIMULATE READ REPLICA FAILURE.

Un errore di replica Aurora bloccha tutte le richieste da un'istanza di scrittura a una replica Aurora o tutte le repliche Aurora nel cluster di database per un periodo di tempo specificato. Al termine dell'intervallo di tempo, le repliche Aurora interessate verranno automaticamente sincronizzate con l'istanza del writer.

Sintassi

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

Opzioni

Questa query fault injection accetta i seguenti parametri:

  • percentage_of_failure — La percentuale di richieste da bloccare durante l'evento di errore. Può essere un valore tra 0 e 100. Se specifichi 0, non viene bloccata alcuna richiesta. Se specifichi 100, vengono bloccate tutte le richieste.

  • Failure type (Tipo di errore) — Il tipo di errore da simulare. Specifica TO ALL per simulare errori per tutte le repliche Aurora nel cluster di database. Specifica TO e il nome della replica Aurora per simulare un errore di un'unica replica Aurora. Il tipo di errore predefinito è TO ALL.

  • quantity — L'intervallo di tempo durante il quale simulare l'errore di replica di Aurora. L'intervallo è un numero seguito da un'unità di tempo. Il valore nell'unità specificata indica la durata della simulazione. Ad esempio, con 20 MINUTE la simulazione durerà 20 minuti.

    Nota

    Fai attenzione quando specifichi l'intervallo di tempo per l'evento di errore della replica Aurora. Se specifichi un intervallo di tempo troppo lungo e l'istanza master scrive una grande quantità di dati durante l'evento di errore, il cluster di database Aurora potrebbe ritenere che si è verificato un arresto anomalo della replica Aurora e quindi sostituirla.

Test di un errore del disco

Puoi simulare un errore del disco per un cluster database Aurora mediante la query fault injection ALTER SYSTEM SIMULATE DISK FAILURE.

Durante la simulazione di un errore del disco, il cluster di database Aurora contrassegna in modo aleatorio i segmenti del disco come difettosi. Le richieste a tali segmenti saranno bloccate per la durata della simulazione.

Sintassi

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

Opzioni

Questa query fault injection accetta i seguenti parametri:

  • percentage_of_failure — la percentuale del disco da contrassegnare come difettosa durante l'evento di errore. Può essere un valore tra 0 e 100. Se specifichi 0, nessuna parte del disco è contrassegnata come difettosa. Se specifichi 100, tutto il disco è contrassegnato come difettoso.

  • DISK index — uno specifico blocco di dati logico per il quale simulare l'evento di errore. Se viene superato l'intervallo di blocchi di dati logici disponibili, viene generato un errore indicante il valore di indice massimo che puoi specificare. Per ulteriori informazioni, consulta Visualizzazione dello stato del volume per un cluster DB Aurora MySQL.

  • NODE index — uno specifico nodo di storage per il quale simulare l'evento di errore. Se viene superato l'intervallo di nodi di storage disponibili, viene generato un errore indicante il valore di indice massimo che puoi specificare. Per ulteriori informazioni, consulta Visualizzazione dello stato del volume per un cluster DB Aurora MySQL.

  • quantity — l'intervallo di tempo durante il quale simulare l'errore del disco. L'intervallo è un numero seguito da un'unità di tempo. Il valore nell'unità specificata indica la durata della simulazione. Ad esempio, con 20 MINUTE la simulazione durerà 20 minuti.

Test di una congestione del disco

Puoi simulare un errore del disco per un cluster database Aurora mediante la query fault injection ALTER SYSTEM SIMULATE DISK CONGESTION.

Durante la simulazione della congestione del disco, il cluster di database Aurora contrassegna in modo aleatorio i segmenti del disco come congestionati. Le richieste a tali segmenti saranno ritardate di un periodo di tempo compreso tra il ritardo minimo e quello massimo specificati per la durata della simulazione.

Sintassi

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

Opzioni

Questa query fault injection accetta i seguenti parametri:

  • percentage_of_failure — La percentuale del disco da contrassegnare come congestionata durante l'evento di errore. Può essere un valore tra 0 e 100. Se specifichi 0, nessuna parte del disco è contrassegnata come congestionata. Se specifichi 100, tutto il disco è contrassegnato come congestionato.

  • DISK index o NODE index — Uno specifico disco o nodo per il quale simulare l'evento di errore. Se viene superato l'intervallo di indici per il disco o il nodo, viene generato un errore indicante il valore di indice massimo che puoi specificare.

  • minimum e maximum — Il valore minimo e massimo del ritardo di congestione in millisecondi. I segmenti del disco contrassegnati come congestionati saranno ritardati per un periodo di tempo aleatorio compreso tra il valore minimo e quello massimo in millisecondi per la durata della simulazione.

  • quantity — L'intervallo di tempo durante il quale simulare la congestione del disco. L'intervallo è un numero seguito da un'unità di tempo. Il valore nell'unità specificata indica la durata della simulazione. Ad esempio, con 20 MINUTE la simulazione durerà 20 minuti.