Perché è necessario molto tempo per eseguire un ripristino point-in-time della mia istanza Amazon RDS per MySQL?

3 minuti di lettura
0

Ho avviato un ripristino point-in-time (PITR) in Amazon Relational Database Service (Amazon RDS) per MySQL e sta richiedendo più tempo del previsto. Perché succede?

Breve descrizione

Il ripristino point-in-time (PITR) è il processo di ripristino di un database allo stato in cui si trovava in una data e ora specificate. Quando si avvia un PITR, viene ripristinato il backup più recente (automatico o manuale). I log delle transazioni vengono quindi applicati per eseguire il roll forward del database Amazon RDS fino all’ora del PITR.

Soluzione

Best practice per evitare un PITR prolungato

Per evitare un PITR prolungato, segui queste best practice:

  • Crea una strategia di ripristino di emergenza.
  • Usa transazioni più piccole ed esegui il comando COMMIT più frequentemente.
  • Acquisisci un'istantanea prima e dopo ogni transazione di grandi dimensioni. Transazioni di dimensioni superiori al parametro max_allowed_packet impediscono tuttavia la riuscita del PITR.
  • Riduci al minimo i tempi di ripristino delle istantanee. I ripristini delle istantanee vengono avviati come parte del processo di ripristino point-in-time. Un ripristino delle istantanee più lungo può determinare una sessione PITR più lunga. Per ulteriori informazioni, consulta Perché è necessario così tanto tempo per ripristinare un'istantanea della mia istanza database Amazon RDS per MySQL?
  • Il processo di applicazione dei log può richiedere più tempo a seconda del numero di log da applicare. Per ridurre il numero di log da applicare, prendi in considerazione la possibilità di acquisire manualmente un'istantanea tra un backup automatico e l’altro. Poiché il ripristino point-in-time seleziona automaticamente le istantanee automatiche o manuali create in prossimità dell'ora PITR, disporre di istantanee manuali intermedie può ridurre il numero di log da applicare. Se hai a che fare con un grande volume di modifiche, acquisisci un'istantanea manuale ogni 3-4 ore.
  • Se riesegui transazioni di grandi dimensioni, un valore wait_timeout basso può interrompere i processi di ripristino point-in-time in Amazon RDS for MySQL. Ad esempio, si verificano interruzioni se si eseguono un grande aggiornamento, inserimento o eliminazione in blocco basati su righe, e la riproduzione richiede più tempo di wait_timeout. Per evitare interruzioni nel processo PITR, imposta il valore wait_timeout a "600" (10 minuti) o più. Per ulteriori informazioni, consulta la sezione wait_timeout in Best practices for configuring parameters for Amazon RDS for MySQL.
  • Quando viene utilizzato il log binario basato su righe, considera di impostare il valore del parametro binlog_row_image su "MINIMAL" anziché "FULL". Questo valore aggiornato ridurrà la dimensione dei binlog, riducendo al minimo il loro tempo di ripristino.
  • A meno che tu non abbia bisogno di un formato binlog specifico, considera di usare il formato di log MIXED. In modalità mista vengono utilizzati, per impostazione predefinita, dei log basati su istruzioni; se però è necessario la modalità di log torna ad essere automaticamente quella basata su righe. Questa modifica può aiutare a ridurre le dimensioni dei binlog. Per ulteriori informazioni sui log MIXED, consulta Binary logging formats sul sito Web MySQL.

Errori di ripristino point-in-time

I seguenti scenari impediranno la riuscita del ripristino point-in-time: