Introdução
Neste laboratório, você aprenderá a fazer backup e restaurar bancos de dados MySQL usando a ferramenta de linha de comando mysqldump. O mysqldump é uma utilidade crucial para criar backups lógicos, que são essenciais para proteção de dados, recuperação de desastres e migração.
Você praticará o backup de um banco de dados inteiro, o backup de uma única tabela e, em seguida, restaurará ambos a partir dos arquivos de backup. O laboratório o guiará através da simulação de cenários de perda de dados e do uso de seus backups para recuperar os dados, garantindo que você entenda o ciclo completo de backup e recuperação.
Fazer Backup de um Banco de Dados Inteiro
O primeiro passo na proteção de dados é criar um backup completo. Nesta etapa, você usará o mysqldump para criar um backup completo do banco de dados mydatabase, que foi pré-configurado para você.
Primeiro, abra o terminal. Vamos inspecionar o banco de dados para ver o que ele contém. Conecte-se ao servidor MySQL usando o usuário root.
sudo mysql -u root
Assim que vir o prompt mysql>, mude para o banco de dados mydatabase e visualize suas tabelas.
USE mydatabase;
SHOW TABLES;
Você deverá ver duas tabelas, products e users.
+--------------------+
| Tables_in_mydatabase |
+--------------------+
| products |
| users |
+--------------------+
2 rows in set (0.00 sec)
Agora, saia do shell do MySQL para retornar ao terminal.
exit
É hora de fazer o backup do banco de dados inteiro. O comando mysqldump lê o banco de dados e gera as instruções SQL necessárias para recriá-lo. Redirecionaremos essa saída para um arquivo .sql.
Execute o seguinte comando para fazer o backup de mydatabase e salvá-lo em um arquivo chamado mydatabase_backup.sql dentro do diretório /home/labex/backup.
sudo mysqldump -u root mydatabase > /home/labex/backup/mydatabase_backup.sql
Para confirmar que o arquivo de backup foi criado, liste o conteúdo do diretório /home/labex/backup.
ls /home/labex/backup
Você deverá ver seu arquivo de backup listado.
mydatabase_backup.sql
Você criou com sucesso um backup completo do banco de dados.
Fazer Backup de uma Tabela Única
Às vezes, você só precisa fazer backup de uma tabela específica em vez do banco de dados inteiro. Isso é útil para operações menores e direcionadas. Nesta etapa, você fará backup apenas da tabela products.
A sintaxe é semelhante a um backup completo do banco de dados, mas você especifica o nome da tabela após o nome do banco de dados.
Do seu terminal, execute o seguinte comando para fazer o backup da tabela products do mydatabase. O backup será salvo como products_backup.sql.
sudo mysqldump -u root mydatabase products > /home/labex/backup/products_backup.sql
Vamos verificar se o novo arquivo de backup foi criado. Liste o conteúdo do diretório de backup novamente.
ls /home/labex/backup
Você deverá ver agora o backup completo do banco de dados e o backup de tabela única.
mydatabase_backup.sql products_backup.sql
Você pode inspecionar o conteúdo do arquivo de backup de tabela única para ver que ele contém apenas informações para a tabela products.
cat /home/labex/backup/products_backup.sql
A saída mostrará as instruções SQL para criar e popular apenas a tabela products. Isso confirma que você criou com sucesso um backup direcionado.
Restaurar um Banco de Dados Inteiro
Agora que você tem backups, vamos praticar a restauração deles. Nesta etapa, você simulará um desastre excluindo todo o mydatabase e, em seguida, o restaurará a partir do seu arquivo de backup completo.
Primeiro, vamos remover o banco de dados. A flag -e permite que você execute um único comando SQL diretamente do seu terminal.
sudo mysql -u root -e "DROP DATABASE mydatabase;"
Verifique se o banco de dados foi removido.
sudo mysql -u root -e "SHOW DATABASES;"
Você verá que mydatabase não está mais na lista.
Antes de poder restaurar os dados, você deve criar um banco de dados vazio com o mesmo nome.
sudo mysql -u root -e "CREATE DATABASE mydatabase;"
Agora, restaure o banco de dados redirecionando o arquivo mydatabase_backup.sql como entrada para o cliente mysql.
sudo mysql -u root mydatabase < /home/labex/backup/mydatabase_backup.sql
O comando executará todas as instruções SQL no arquivo de backup, recriando as tabelas e inserindo os dados.
Para verificar a restauração, conecte-se ao MySQL e verifique as tabelas e seu conteúdo.
sudo mysql -u root
No prompt mysql>, execute estes comandos:
USE mydatabase;
SHOW TABLES;
SELECT * FROM users;
Você deverá ver as tabelas products e users novamente, e a tabela users deverá conter seus dados originais.
+--------------------+
| Tables_in_mydatabase |
+--------------------+
| products |
| users |
+--------------------+
2 rows in set (0.00 sec)
+----+------------+--------------------------+
| id | name | email |
+----+------------+--------------------------+
| 1 | John Doe | john.doe@example.com |
| 2 | Jane Smith | jane.smith@example.com |
+----+------------+--------------------------+
2 rows in set (0.00 sec)
Saia do shell do MySQL.
exit
Você recuperou com sucesso o banco de dados inteiro de uma falha catastrófica.
Resumo
Neste laboratório, você aprendeu as habilidades essenciais para fazer backup e restaurar bancos de dados MySQL usando a utilidade mysqldump. Você praticou a criação de um backup completo de um banco de dados e um backup direcionado de uma única tabela.
Você também ganhou experiência prática com procedimentos de recuperação, simulando tanto a perda completa do banco de dados quanto a exclusão acidental de uma única tabela. Ao restaurar com sucesso os dados em ambos os cenários, você demonstrou uma compreensão fundamental do ciclo de vida completo de proteção de dados, uma habilidade crítica para qualquer administrador de banco de dados ou desenvolvedor.



