Posso falar que fazer gerar backup de apenas uma tabela específica em um banco de dados é importante por várias razões. Particularmente, acho que o mais importante quando precisamos restaurar apenas uma parte específica do banco de dados, sem afetar o restante das informações. Isso pode economizar tempo e minimizar o impacto de eventuais problemas.
A minha necessidade nesse momento, e que me faz escrever esse post, é aproveitar uma página de login que tenho já pronta e para isso preciso também somente da tabela “usuarios” e não de todo o banco de dados.
Outro fator importante é fazer o backup de apenas uma tabela em situações em que você está realizando alterações significativas nessa tabela e deseja ter um ponto de restauração específico, sem interferir nas demais partes do banco de dados.
Vamos ver como usar mysqldump para gerar backup apenas de uma tabela e como restaurar essa tabela em outro banco de dados.
Gerando backup apenas de uma tabela com mysql
O comando mysqldump é a ferramenta de linha de comando que usaremos para criar backups da tabela de um bancos de dados MySQL.
Nesse post aprendemos a fazer backup de todo o banco de dados: MySQL e MariaDB: Criando e Restaurando Backup com mysqldump
Veja um exemplo de como você pode usar o mysqldump para gerar um backup de uma tabela específica:
mysqldump -u SEU_USUARIO -p SUA_SENHA --databases SEU_BANCO_DE_DADOS --tables SUA_TABELA > caminho/para/o/arquivo/backup_tabela.sql
Vamos explicar partes dessa linha:
-u SEU_USUARIO
: SubstituaSEU_USUARIO
pelo nome de usuário do MySQL.-p SUA_SENHA
: SubstituaSUA_SENHA
pela senha do usuário do MySQL. Se não houver senha, você pode remover este parâmetro.--databases SEU_BANCO_DE_DADOS
: SubstituaSEU_BANCO_DE_DADOS
pelo nome do banco de dados que contém a tabela que você deseja fazer backup.--tables SUA_TABELA
: SubstituaSUA_TABELA
pelo nome da tabela que você deseja fazer backup.> caminho/para/o/arquivo/backup_tabela.sql
: Redireciona a saída do comando para um arquivo SQL. Substituacaminho/para/o/arquivo/backup_tabela.sql
pelo caminho e nome do arquivo desejado
Olha um exemplo mais prático:
mysqldump -u root -p --databases meubanco --tables users > ~/Downloads/users.sql
Restaurando a tabela em outro banco de dados
Podemos restaurar uma tabela em outro banco de dados usando o arquivo SQL gerado pelo mysqldump
do passo acima. Usamos o comando mysql
.
mysql -u SEU_USUARIO -p SUA_SENHA -h SEU_HOST NOVO_BANCO_DE_DADOS < caminho/para/o/arquivo/backup_tabela.sql
Vamos entender trechos dessa linha:
-u SEU_USUARIO
: SubstituaSEU_USUARIO
pelo nome de usuário do MySQL.-p SUA_SENHA
: SubstituaSUA_SENHA
pela senha do usuário do MySQL. Se não houver senha, você pode remover este parâmetro.-h SEU_HOST
: SubstituaSEU_HOST
pelo host do servidor MySQL. Se estiver sendo executado localmente, você pode usarlocalhost
.NOVO_BANCO_DE_DADOS
: SubstituaNOVO_BANCO_DE_DADOS
pelo nome do novo banco de dados para o qual você deseja restaurar a tabela.< caminho/para/o/arquivo/backup_tabela.sql
: Redireciona o conteúdo do arquivo SQL para o comandomysql
.
Novamente, segue exemplo mais prático para entendermos:
mysql -u root -p meu_outro_banco < ~/Downloads/users.sql
Comment on “SQL: Como Fazer Backup de Apenas uma Tabela do Banco de Dados?”