Perché è necessario così tanto tempo per ripristinare un'istantanea della mia istanza database Amazon RDS per MySQL?

4 minuti di lettura
0

Sto cercando di ripristinare un'istantanea di un’istanza database Amazon Relational Database Service (Amazon RDS) per MySQL. Perché ci vuole così tanto tempo?

Breve descrizione

In genere i tempi di ripristino prolungati di un’istantanea sono causati da ripristini prolungati del database. Il tempo di ripristino dipende dal carico di lavoro dell'istanza al momento dell'acquisizione dell'istantanea. Se sull'istanza database di origine è abilitato il log binario, il ripristino può richiedere più tempo. Possono quindi esservi conseguenze anche per il tempo di ripristino delle istantanee.

Soluzione

Quando si ripristina un’istantanea, Amazon RDS esegue un processo di ripristino e il motore di database MySQL viene avviato su una nuova istanza database. L'avvio della nuova istanza database può richiedere fino a qualche minuto, a seconda della durata della sessione di ripristino durante l’avvio di un'istanza. Per ulteriori informazioni, consulta InnoDB crash recovery sul sito web di MySQL.

Nota: Sperimenterai una certa latenza (o caricamento lento) finché il volume non sarà completamente riempito a partire da Amazon Simple Storage Service (Amazon S3). Per ulteriori informazioni sul caricamento lento, consulta l’articolo Ripristino da uno snapshot database.

Per ridurre il tempo necessario a completare il ripristino delle istantanee in Amazon RDS, prendi in considerazione le strategie seguenti:

  • Pianifica una finestra di backup o acquisisci manualmente un'istantanea della tua istanza database durante le ore fuori picco. Le attività eseguite sull'istanza database di origine durante l'acquisizione di un'istantanea influiscono sui tempi di ripristino del database e su quelli di eventuali istantanee.
  • Se l'istanza di origine utilizza un tipo di archiviazione magnetico durante un'istantanea, l'istanza appena ripristinata sarà in stato di modifica. Ad esempio, quando l'istantanea del database è ripristinata come tipo di archiviazione SSD per scopo generico (GP2) o con capacità di IOPS allocata (PIOPS), si verifica la modifica del volume sottostante. Di conseguenza, la nuova istanza riporta lo stato di "modifica". In questa fase ci si può comunque connettere a un'istanza Amazon RDS, anche se è possibile riscontrare un calo delle prestazioni.
  • Ripristina temporaneamente l'istanza in una classe dell’istanza database superiore (ad esempio una classe di istanza dotata di una memoria o una RAM maggiore). Una classe dell’istanza database superiore può consentirti di ridurre il tempo necessario al ripristino in caso di arresto anomalo. In questo modo disponi temporaneamente di più risorse, cosa che può contribuire alla riduzione del tempo complessivo di ripristino in caso di arresto anomalo. Una volta completato il ripristino dell’istantanea, puoi tornare a una classe di istanza inferiore.

Per ridurre il tempo per il completamento del ripristino di istantanee con log binario abilitato in Amazon RDS, considera quanto segue:

  • Quando è abilitato il log binario (ad esempio quando l'istanza di origine ha i backup automatici abilitati), i log binari influiscono direttamente sul tempo di ripristino dell'istantanea. Durante il ripristino in caso di arresto anomalo, il processo di ripristino dell’istantanea esegue anche il ripristino del log binario.
  • Per ridurre i tempi di ripristino del log binario, evita transazioni di grandi dimensioni e file di log binario di grandi dimensioni. Maggiore è il numero di dati registrati nei log binari, maggiore è il numero di dati che il processo di ripristino deve elaborare durante il ripristino del binlog. Di conseguenza, aumenta il tempo di ripristino generale e dunque anche i tempi di ripristino delle istantanee.
  • Usa una dimensione di transazione corretta ogni volta che è possibile. Le transazioni di grandi dimensioni vengono scritte in una sola volta nel file di log binario e non sono suddivise in diversi file. Di conseguenza il file di log binario sarà di grandi dimensioni, il che accresce il tempo di ripristino in caso di arresto anomalo.
  • Anche il tipo di formato di log binario utilizzato può influire sulle dimensioni e sull'efficienza del ripristino. Alcuni formati (come la registrazione basata su riga) registrano più informazioni nei log binari rispetto ad altri. Le istruzioni che modificano un numero elevato di righe in una tabella fanno sì che il motore di database generi voci binlog per ogni riga modificata. Di conseguenza si otterrà un file binlog di grandi dimensioni. Per ulteriori informazioni sul formato di registrazione basato su riga, consulta Usage of Row-Based Logging and Replication sul sito web di MySQL. Per ulteriori informazioni sui diversi tipi di formati di registrazione binaria, consulta Advantages and Disadvantages of Statement-Based and Row-Based Replicationsul sito web di MySQL.