Fazer backup de banco de dados regularmente é uma das etapas cruciais depois de tornar o projeto ativo. A frequência de backup pode ser uma vez por dia ou por semana. O backup diário é preferencial para os aplicativos em que as alterações do banco de dados são mais frequentes. No caso de bancos de dados de alta disponibilidade, a configuração de cluster apropriada deve ser considerada em vez do dimensionamento vertical. Este tutorial explica o uso do
Observações :Este tutorial cobre apenas as opções mais comuns usadas com o
Backup local
Backup - Esta seção explica como fazer backup local em um arquivo exportando bancos de dados únicos ou múltiplos.
Permissões -
- SELECT - para despejar tabelas
- MOSTRAR VISUALIZAÇÃO - para despejar visualizações
- TRIGGER - para despejar acionadores
- BLOQUEAR TABELAS - caso a opção --single-transaction não seja usada
Comando - Abaixo mencionado é o uso de
# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>
Os exemplos para usar o comando regular são os mencionados abaixo. Estes comandos de exemplo estão usando o usuário enterprise fazer backups do banco de dados corporativo . Não há necessidade de especificar usuário e senha caso a conta de usuário esteja usando auth_socket algoritmo para fazer login no servidor MySQL. O usuário do sistema pode acessar diretamente o banco de dados. Você pode consultar Como usar a senha nativa com o MySQL 5.7 e Como instalar o MySQL 8 no Ubuntu para saber mais sobre algoritmos de senha.
Observações :Não há necessidade de usar a opção -p, caso nenhuma senha seja atribuída ao usuário.
Abaixo mencionados são os exemplos para fazer backup de um único banco de dados com nome de usuário, host e porta. A senha não deve ser fornecida com esses comandos para fins de segurança. Você pode especificar a senha para
# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql
# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql
# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql
# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql
# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql
# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql
Abaixo mencionados são os exemplos para fazer backup de vários bancos de dados com nome de usuário, host e porta.
# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql
# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql
Abaixo mencionado é o exemplo para fazer backup de todos os bancos de dados com nome de usuário, host e porta.
# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql
# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql
Os usuários do PowerShell no Windows precisarão de um comando diferente, conforme mencionado abaixo.
# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>
# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql
Os comandos mencionados acima exportarão o banco de dados e as tabelas selecionados para o local do arquivo especificado no comando.
Backup de banco de dados
Esta seção explica como fazer o backup do banco de dados para outro banco de dados usado para fins de backup usando os Shell Pipes. Podemos exportar o banco de dados para o arquivo local e usar esse arquivo para importar para outro banco de dados ou exportar diretamente para outro banco de dados usando shell pipes.
O comando abaixo mencionado pode ser usado para exportar o banco de dados diretamente para outro banco de dados. Além disso, certifique-se de ter acesso a ambos os servidores antes de executar o comando.
# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup
# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise
É assim que podemos exportar ou fazer backup de um banco de dados.