Backup automatici con motori di storage MySQL non supportati - Amazon Relational Database Service

Backup automatici con motori di storage MySQL non supportati

Per il motore di database MySQL, i backup automatici sono supportati solo per il motore di storage InnoDB. L'utilizzo di queste caratteristiche con altri motori di archiviazione MySQL, incluso MyISAM, può causare un comportamento inaffidabile durante il ripristino dai backup. Nello specifico, poiché i motori di storage come MyISAM non supportano il ripristino da arresto anomalo affidabile, è possibile che le tabelle vengano danneggiate in caso di arresto anomalo. Per questo, ti consigliamo di utilizzare il motore di storage InnoDB.

  • Per convertire le tabelle MyISAM esistenti in tabelle InnoDB, è possibile utilizzare il comando ALTER TABLE, ad esempio: ALTER TABLE table_name ENGINE=innodb, ALGORITHM=COPY;

  • Se si sceglie di utilizzare MyISAM, è possibile tentare di eseguire manualmente il ripristino delle tabelle danneggiate dopo un arresto anomalo utilizzando il comando REPAIR. Per ulteriori informazioni, consulta REPAIR TABLE Statement nella documentazione MySQL. Come specificato nella documentazione MySQL, è tuttavia molto probabile che non sia possibile recuperare tutti i dati.

  • Per acquisire uno snapshot delle tabelle MyISAM prima del ripristino, procedere nel seguente modo:

    1. Arrestare ogni attività sulle tabelle MyISAM (ovvero, chiudere tutte le sessioni).

      È possibile chiudere tutte le sessioni chiamando il comando mysql.rds_kill per ogni processo restituito dal comando SHOW FULL PROCESSLIST.

    2. Bloccare e svuotare ciascuna tabella MyISAM. Ad esempio, i seguenti comandi bloccano e svuotano le due tabelle denominate myisam_table1 e myisam_table2:

      mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
    3. Crea uno snapshot dell'istanza database o del cluster di database multi-AZ. Quando la snapshot è completata, rilasciare i blocchi e riprendere l'attività sulle tabelle MyISAM. È possibile utilizzare il comando seguente per rilasciare i blocchi sulle tabelle:

      mysql> UNLOCK TABLES;

    Queste fasi forzano MyISAM a svuotare i dati archiviati in memoria sul disco, garantendo un avvio pulito quando si esegue il ripristino da uno snapshot DB. Per ulteriori informazioni sulla creazione di una snapshot DB, consulta Creazione di uno snapshot del database per un’istanza database Single-AZ per Amazon RDS.