Idioma
Categoria
Pesquisar

MySQL (MariaDB): Backup e restauração de bancos de dados

Como fazer backup e restaurar um ou mais banco de dados por linha de comando, como utilizar compactação e ignorar certas tabelas no processo

Em Banco de dados Por Rudi Drusian Lange
Publicado em
Última atualização

O comando mysqldump é utilizado para fazer o backup enquanto o comando mysql é usado para restaurar o backup.

# Shell

# Backup de um banco de dados específico
mysqldump --databases nome_banco_de_dados -u usuario_mysql -p > nome_banco_de_dados.sql

# Backup de dois ou mais banco de dados
mysqldump --databases nome_banco_de_dados_1 nome_banco_de_dados_2 -u usuario_mysql -p > dois_banco_de_dados.sql

# Backup de todos os bancos de dados
mysqldump --all-databases -u usuario_mysql -p > todos_os_bancos.sql

# Backup de um banco de dados ignorando certas tabelas
mysqldump --databases nome_banco_de_dados --ignore-table="nome_banco_de_dados.nome_da_tabela1" --ignore-table="nome_banco_de_dados.nome_da_tabela2" -u usuario_mysql -p > nome_banco_de_dados.sql

# Restaurando o backup
mysql -u usuario_mysql -p < nome_do_backup.sql

# Restaurando um banco de dados de um backup com mais banco de dados
mysql --one-database nome_banco_de_dados -u usuario_mysql -p < todos_os_bancos.sql

# Backup com compactação gzip
mysqldump --databases nome_banco_de_dados -u usuario_mysql -p | gzip -9 > nome_banco_de_dados.sql.gz

# Restaurando a partir de um backup compactado
gunzip < nome_banco_de_dados.sql.gz | mysql -u usuario_mysql -p

Detalhes dos parâmetros utilizados nos comandos:

  • -u usuario_mysql: É necessário fornecer um usuário que tenha permissão de acesso ao banco de dados para poder fazer o backup. Este parâmetro faz exatamente isso.
  • -p: Força solicitar a senha, lembre de deixar espaço antes e depois. Caso deseje utilizar a senha na linha de comando, utilize: -p'senhaDoBanco' Tudo junto, sem espaço após o -p.
  • >: Direciona a saída do comando de backup do banco de dados para o arquivo que será o backup
  • <: Direciona o arquivo de backup para ser utilizado no comando de restauração
  • --databases: Esta opção é obrigatória para fazer backup de mais de um banco de dados, utilizando este parâmetro o backup é feito incluindo a criação do próprio banco de dados. Ao fazer o backup de um único banco de dados pode-se omitir este parâmetro porém será necessário recriar o baco de dados antes de restaurar o backup.
  • --all-databases: Parâmetro utilizado para fazer o backup de todos os bancos de dados.
  • --one-database: Parâmetro utilizado recuperar um banco de dados de um backup com mais banco de dados. Neste caso é necessário criar o banco de dados a ser restaurado antes de executar o comando, assim as tabelas e os registros serão inseridos no banco.
  • --ignore-table: Parâmetro para ignorar certas tabelas ao fazer o backup.