Quando o inesperado acontece, sua empresa pode sofrer. Falhas de hardware, corrupção do banco de dados, erros de usuários e até mesmo ataques maliciosos podem criar risco de perda de dados. Os backups do banco de dados ajudam a recuperar e manter sua empresa funcionando, mesmo que algo dê errado. E os backups de banco de dados ajudam a atender aos requisitos de conformidade e auditoria permitindo restaurar o banco de dados para um ponto específico no passado.
O MySQL oferece várias opções para fazer backup dos bancos de dados, cada uma com diferentes pontos fortes. Escolha qualquer combinação de métodos que melhor atenda às suas necessidades.
Há duas maneiras principais de fazer backup de um banco de dados MySQL: física e lógica. O backup físico copia os arquivos de dados reais, e o backup lógico gera instruções, como CREATE TABLE e INSERT, que podem recriar os dados.
Um backup físico contém as cópias brutas de todos os arquivos e diretórios como eles se encontram no disco. Esse tipo de backup é adequado para bancos de dados grandes, porque copiar os arquivos brutos é muito mais rápido do que fazer um backup lógico.
Vantagens:
Desvantagens:
Algumas ferramentas de backup físico comuns no ecossistema do MySQL
Um backup lógico contém os dados no banco de dados em um formato que o MySQL pode interpretar como SQL ou como texto delimitado. Ele é uma representação do banco de dados como uma sequência de instruções SQL que podem ser executadas para recriar objetos do banco de dados e importar dados. Esse tipo de backup é adequado para pequenos bancos de dados, porque os backups lógicos podem levar muito mais tempo para restaurar do que restaurar um backup físico. Esse tipo de backup também é útil ao migrar de ou para serviços de banco de dados gerenciados na nuvem.
Vantagens:
Desvantagens:
Algumas ferramentas de backup lógico comuns
Como o nome sugere, a recuperação pontual ajuda a recuperar uma instância para um momento específico. Por exemplo, se houver perda de dados devido a um erro, será possível recuperar um banco de dados no estado anterior a esse evento.
A PITR é um processo de duas etapas que depende de registros binários:
Os registros binários contêm alterações feitas na instância do banco de dados, como criação de tabela, inserção/atualização/exclusão de linha e outras. Por exemplo, digamos que seus backups diários sejam executados às 6h e você queira recuperar sua instância a qualquer momento até as 10h15. Para recuperar o estado às 10h15, primeiro restaure o backup completo das 6h e repita os eventos de registro binário das 6h até às 10h15. Isso levará o servidor ao estado desejado no momento desejado.
Os registros binários são necessários para replicação e PITR. Eles são tão importantes quanto os dados. É necessário fazer backup dos registros binários em tempo real para que eles sejam eficazes no seu planejamento de recuperação. É possível fazer o download deles com o comando mysqlbinlog.
Exemplo:
mysqlbinlog --host=<hostname> --port=<port> --user=<user> --password=<password> --read-from-remote-server --raw --stop-never <binlog_filename> |
O <binlog_filename> será o primeiro arquivo a ser transferido por download, e o mysqlbinlog alternará automaticamente para o próximo arquivo depois. Esses registros binários são gravados no diretório atual do servidor que executa o comando mysqlbinlog. É possível alterar o nome e o local do arquivo usando a opção --result-file. Também é possível usar a opção --stop-never para permitir que o binlog mysqlbinlog permaneça conectado ao servidor e faça o download de novas alterações à medida que elas forem gravadas.
Saiba mais no manual do mysqlbinlog sobre como se conectar a um servidor remoto e fazer o download dos registros binários enquanto eles são gravados.
Como o serviço de banco de dados gerenciado do Google Cloud para MySQL, o Cloud SQL oferece backups automatizados e recuperação pontual para proteção de dados. Eles são ativados por padrão e necessários para ativar a alta disponibilidade (HA, na sigla em inglês) em uma instância do Cloud SQL para MySQL.
Qualquer backup do Cloud SQL é um tipo de backup físico, já que são snapshots capturados no Persistent Disk (PD). O Cloud SQL oferece a flexibilidade de fazer com que os backups aconteçam automaticamente ou sob demanda a qualquer momento. Ainda é possível fazer um backup lógico usando as ferramentas de backup lógicos padrão do MySQL, como mysqldump, mydumper, mysqlpump e outros, sem interferir nos backups gerenciados.
Vamos ver em mais detalhes como os backups do Cloud SQL funcionam.
O Cloud SQL usa o Persistent Disk (PD) para armazenamento, e cada instância do Cloud SQL tem um disco de dados permanente anexado para armazenar os arquivos e diretórios do banco de dados.
O Cloud SQL usa snapshots de DP para backups. Esses snapshots se referem ao estado do disco de dados em um determinado momento. O primeiro snapshot de um DP é um snapshot completo que contém todos os dados no DP. Os snapshots subsequentes são incrementais e contêm apenas dados novos ou modificados desde o snapshot anterior. Pense nesses snapshots como cópias físicas gerenciadas pela nuvem de discos de dados permanentes, que são a base de todos os recursos de backup e restauração do Cloud SQL, incluindo a PITR.
O Cloud SQL executa dois tipos de backups gerenciados: automatizados e sob demanda. Os dois tipos são armazenados no local multirregional mais próximo à instância por padrão. Por exemplo, se a instância do Cloud SQL estiver em us-central1, os backups serão armazenados na multirregião EUA por padrão. No entanto, um local padrão como a australia-southeast1 está fora de uma multirregião e será colocado na multirregião mais próxima, que é a Ásia. Também é possível escolher um local personalizado para os backups.
Backups automatizados
Os backups automatizados são feitos diariamente durante uma janela de quatro horas de sua escolha. O backup é iniciado durante essa janela e pode continuar fora desse período até ser concluído. É possível configurar quantos backups automáticos são retidos, de 1 a 365. A política de retenção padrão é reter os sete backups mais recentes.
Backups sob demanda
Também é possível criar backups sob demanda a qualquer momento. Eles são úteis se você precisar de um backup e não quiser esperar pela janela de backup. Além disso, ao contrário dos backups automatizados, os sob demanda não são excluídos automaticamente. Eles perduram até que você os exclua ou até que a instância deles seja excluída.
É possível restaurar um backup na mesma instância em que ele foi feito ou em uma instância diferente no mesmo projeto. A instância de destino não pode ser uma réplica de leitura nem ter réplicas de leitura no momento de restaurar o backup, já que as réplicas de leitura são cópias de uma instância primária e cria o risco de que as réplicas fiquem dessincronizadas com a principal. É possível adicionar réplicas de leitura posteriormente.
A restauração do backup cria um novo DP a partir desse snapshot de backup e o anexa à instância. O banco de dados começa a usar o novo disco e executa o processo padrão de recuperação de falhas do MySQL antes de ficar on-line como um banco de dados MySQL completo recém-restaurado do snapshot.
Restaurar para a mesma instância
A restauração de um backup na mesma instância retorna os dados para o estado em que estavam no momento do backup.
Restaurar para uma instância diferente
Ao usar um backup para restaurar para uma instância diferente, os dados na instância de destino são atualizados para o estado em que eles estavam na instância de origem no momento em que o backup foi feito.
Importante: a restauração de um backup substitui todos os dados atuais na instância de destino, incluindo os registros de recuperação pontual anteriores. Os dados substituídos não podem ser recuperados.
No Cloud SQL, a PITR sempre cria uma nova instância que herda as configurações da instância de origem, semelhante à operação de clone. Esse recurso requer que os backups automatizados e a recuperação pontual (registros binários) estejam ativados na instância de origem. A política de retenção padrão em registros binários é de sete dias, e é possível configurar o período de armazenamento entre 1 e 7 dias.
A PITR é alcançada criando uma nova instância a partir do backup da instância original e reproduzindo novamente os registros binários armazenados no disco de dados da instância original para o ponto especificado.
Ao executar a PITR no Cloud SQL, os clientes podem clonar o estado atual da instância ou um carimbo de data/hora no passado.
A IU para executar a PITR é semelhante a esta:
Comece a criar no Google Cloud com US$ 300 em créditos e mais de 20 produtos do programa Sempre gratuito.