Salta al contenuto

Come posso risolvere i problemi di ripristino da snapshot in Aurora compatibile con MySQL?

7 minuti di lettura
0

Desidero ripristinare i miei cluster di database Amazon Aurora compatibile con MySQL da snapshot o backup, ma riscontro problemi.

Breve descrizione

Sono disponibili diverse opzioni per ripristinare un intero cluster di database Aurora compatibile con MySQL da uno snapshot o da un backup. Puoi utilizzare la console Aurora e Amazon Relational Database Service (Amazon RDS) per ripristinare l'intero cluster di database da uno snapshot o da un recupero point-in-time (PITR). Puoi inoltre utilizzare AWS Backup per gestire backup e ripristini automatici da un PITR. Oppure puoi creare un clone del database in Aurora.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Utilizza la console Aurora e RDS per eseguire il ripristino da uno snapshot

Quando crei uno snapshot, Aurora esegue il backup dell'intero cluster di database. In Aurora, non puoi scegliere di creare uno snapshot di singole istanze database nel cluster.

Per semplici operazioni di ripristino, utilizza la console Aurora e RDS. Quando utilizzi la console Aurora e RDS per eseguire il ripristino da uno snapshot di un cluster di database, Aurora crea un nuovo cluster e fornisce un'istanza di scrittura. Non puoi ripristinare uno snapshot in un cluster esistente.

Il cluster può anche essere ripristinato da uno snapshot con il comando restore-db-cluster-from-snapshot. Questo metodo, tuttavia, crea solo il cluster, per cui successivamente utilizza il comando create-db-instance per creare l'istanza di scrittura e l'istanza di lettura per il cluster.

Una volta completato il ripristino, il nuovo cluster presenta endpoint diversi rispetto al cluster originale. Per ridurre al minimo il tempo di inattività quando sostituisci un cluster di produzione, completa i seguenti passaggi:

  1. Quando esegui il ripristino nel cluster, utilizza un nuovo nome, ad esempio original-cluster-name-new.
  2. Rinomina il cluster esistente chiamandolo original-cluster-name-old.
    Nota: quando rinomini il cluster, si verifica un tempo di inattività di 1-3 minuti.
  3. Rinomina il nuovo cluster con il nome originale.

Devi inoltre aggiungere e configurare manualmente le istanze di lettura con più zone di disponibilità necessarie nel nuovo cluster dopo il ripristino.

Per aggiungere istanze di lettura nel nuovo cluster, completa i seguenti passaggi:

  1. Apri la console Aurora e RDS.
  2. Nel pannello di navigazione, seleziona Database, quindi seleziona il nuovo cluster.
  3. Attendi che lo stato della nuova istanza primaria sia Disponibile, quindi seleziona Operazioni.
  4. Per aggiungere un'istanza di lettura al nuovo cluster nella stessa Regione AWS, seleziona Aggiungi lettore.
  5. Per configurare una replica in lettura multi-Regione, seleziona Crea replica in lettura tra regioni.

Evita ripristini lenti

Se la dimensione del volume è elevata, la classe dell'istanza ha una dimensione I/O inferiore o la larghezza di banda della rete è insufficiente, il ripristino del cluster richiede più tempo. Inoltre, il throughput di archiviazione massimo dei database di destinazione può influire sulla velocità di ripristino.

Per ridurre al minimo il tempo necessario per ripristinare un cluster Aurora compatibile con MySQL, intraprendi le seguenti azioni:

  • Controlla il valore RollbackSegmentHistoryListLength (HLL) nel cluster originale. Valori HLL elevati mostrano un numero elevato di undo record, che possono rallentare i ripristini. Per risolvere il problema, monitora la metrica HLL in CloudWatch e mantieni il valore basso.
  • Per migliorare le prestazioni di ripristino, scegli una classe di istanza più ampia con throughput di archiviazione e larghezza di banda della rete più elevati.
  • Crea snapshot durante i periodi di carico di lavoro ridotto. Se crei uno snapshot quando c'è meno attività nel database, puoi ridurre il numero di undo record che Aurora elabora durante il ripristino.
  • Suddividi le transazioni in batch più piccoli. Se suddividi le transazioni di lunga durata in unità più piccole, puoi ridurre le dimensioni dell'undo log.
  • Evita transazioni di lunga durata prima di creare uno snapshot. Le transazioni di lunga durata generano più undo record che Amazon RDS deve elaborare durante il ripristino.

Utilizza AWS Backup per un PITR

Quando utilizzi AWS Backup per creare snapshot, gli snapshot hanno nomi che includono awsbackup:job-AWS-Backup-job-number. Questi snapshot sono considerati snapshot manuali del cluster di database, ma non vengono conteggiati ai fini della quota di snapshot del cluster di database per Aurora.

Puoi anche utilizzare AWS Backup per gestire i backup automatici per il PITR. I backup automatici gestiti da AWS Backup hanno nomi che includono continuous:cluster-AWS-Backup-job-number. Per attivare il PITR, devi attivare i backup continui nella regola di backup.

Utilizza la console AWS Backup per ripristinare il cluster associato ai piani di AWS Backup. Dopo aver utilizzato la console AWS Backup per ripristinare il cluster, devi aggiungere l'istanza database di scrittura primaria. A tal fine, esegui il comando AWS CLI create-db-instance. Sostituisci --db-cluster-identifier con il nome del cluster di database ripristinato.

Errori di backup

Potrebbero verificarsi errori di backup se la policy utilizzata in AWS Backup ha autorizzazioni AWS Identity and Access Management (AWS IAM) insufficienti. Per risolvere il problema, verifica che l'utente o il ruolo IAM abbia le autorizzazioni necessarie per eseguire operazioni di backup utilizzando AWS Backup. Devi collegare una policy IAM che conceda l'autorizzazione backup:StartBackupJob all'utente o al ruolo IAM.

Errori di backup possono verificarsi anche quando l'utente o il ruolo IAM non riesce ad accedere alla chiave del Servizio AWS di gestione delle chiavi (AWS KMS) per l'operazione di backup. Se il cluster Aurora utilizza la crittografia a riposo, assicurati l'utente o il ruolo IAM possa accedere e utilizzare la chiave AWS KMS che crittografa lo storage del cluster. Devi concedere l'autorizzazione kms:GenerateDataKey per la policy delle risorse della chiave.

Errori di ripristino

Quando provi a ripristinare un cluster Aurora compatibile con MySQL da uno snapshot di backup, potresti ricevere un errore "Incompatible-restore" per i seguenti motivi:

  • Il database di origine contiene tabelle temporanee o tabelle MyISAM che Aurora non supporta quando esegui il ripristino in un nuovo cluster. Per risolvere il problema, rimuovi queste tabelle prima di creare lo snapshot.
  • Vincoli della chiave esterna incoerenti o ciclici nel database di origine possono impedire un corretto ripristino. Per risolvere il problema, correggi i vincoli prima di creare lo snapshot.
  • La versione del motore del cluster di destinazione è incompatibile. Per risolvere il problema, verifica che la versione del motore Aurora MySQL di destinazione sia compatibile con la versione utilizzata per creare lo snapshot. Se desideri aggiornare la versione del motore del nuovo cluster, ripristina prima una versione compatibile. Quindi aggiorna il cluster ripristinato.
  • Le configurazioni di rete non sono corrette. Ricontrolla che le impostazioni del cloud privato virtuale (VPC), del gruppo di sottorete e del gruppo di sicurezza specificate durante il processo di ripristino corrispondano all'ambiente di destinazione previsto.
  • L'utente o il ruolo IAM non dispone di accesso con chiave AWS KMS. Se lo snapshot utilizza la crittografia, verifica che l'utente o il ruolo IAM abbia le autorizzazioni per accedere e utilizzare la chiave AWS KMS specificata per la decrittografia.

Crea un clone in Aurora

Come metodo alternativo, puoi creare un clone dei database in Aurora. Clonando i database, puoi crearne una copia in modo rapido e con uno spazio aggiuntivo minimo. I dati vengono copiati solo quando si verificano modifiche.

Informazioni correlate

Panoramica di backup e ripristino di un cluster di database Aurora

Ripristino da uno snapshot del cluster di database

Ripristino di un cluster di database a un determinato momento

Informazioni sull'utilizzo dello storage di backup Amazon Aurora

Perché il clone del cluster di database, il ripristino da uno snapshot o il ripristino point-in-time in Amazon Aurora richiedono molto tempo?

AWS UFFICIALEAggiornata 10 mesi fa