Backups automáticos com mecanismos de armazenamento MySQL sem suporte - Amazon Relational Database Service

Backups automáticos com mecanismos de armazenamento MySQL sem suporte

Para o mecanismo de banco de dados MySQL, os backups automatizados só são compatíveis com o mecanismo de armazenamento InnoDB. O uso desses recursos com outros mecanismos de armazenamento do MySQL, incluindo MyISAM, pode levar a um comportamento não confiável durante a restauração de backups. Mais especificamente, como os mecanismos de armazenamento como o MyISAM não são compatíveis com a recuperação de falhas de maneira confiável, as tabelas podem ser corrompidas em caso de falha. Por esse motivo, aconselhamos você a usar o mecanismo de armazenamento InnoDB.

  • Para converter tabelas do MyISAM existentes em tabelas do InnoDB, use o comando ALTER TABLE; por exemplo: ALTER TABLE table_name ENGINE=innodb, ALGORITHM=COPY;

  • Se optar por usar o MyISAM, você poderá tentar reparar manualmente as tabelas que forem danificadas após uma falha usando o comando REPAIR. Para ter mais informações, consulte REPAIR TABLE Statement na documentação do MySQL. No entanto, conforme observado na documentação do MySQL, há grandes chances de que você não consiga recuperar todos os dados.

  • Se você quiser fazer um snapshot das tabelas do MyISAM antes da restauração, siga estas etapas:

    1. Interrompa todas as atividades nas tabelas do MyISAM (isto é, feche todas as sessões).

      Você pode fechar todas as sessões chamando o comando mysql.rds_kill para cada processo que é retornado pelo comando SHOW FULL PROCESSLIST.

    2. Bloqueie e limpe cada uma de suas tabelas do MyISAM. Por exemplo, os comandos a seguir bloqueiam e limpam duas tabelas chamadas myisam_table1 e myisam_table2:

      mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
    3. Crie um snapshot de cluster de sua instância de banco de dados ou cluster de banco de dados multi-AZ. Quando o snapshot for concluído, liberte os bloqueios e retome a atividade nas tabelas do MyISAM. Você pode liberar os bloqueios em suas tabelas usando o seguinte comando:

      mysql> UNLOCK TABLES;

    Essas etapas forçam o MyISAM a limpar os dados armazenados na memória em disco, o que garante uma inicialização limpa quando você restaura de um snapshot de banco de dados. Para ter mais informações sobre como criar um snapshot de banco de dados, consulte Criar um snapshot de banco de dados para uma instância de banco de dados single-AZ para o Amazon RDS.