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 Statementna 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:
-
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
. -
Bloqueie e limpe cada uma de suas tabelas do MyISAM. Por exemplo, os comandos a seguir bloqueiam e limpam duas tabelas chamadas
myisam_table1
emyisam_table2
:mysql> FLUSH TABLES myisam_table, myisam_table2 WITH READ LOCK;
-
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.
-