domingo, 19 de junho de 2016

mySQL - Backups e Restore

Realizar o backup com o banco parado “fechado”

Observação: O diretório: /var/lib/mysql é o local onde o mySQL armazena a base de dados.

# /etc/init.d/mysql stop
# tar -zcvf mysql.tar.gz /var/lib/mysql/
# /etc/init.d/mysql start

Realizar o backup com o mySQL em execução “aberto”

Para isso, é necessário utilizer o executável mysqldump.

Para salvar todas as base de dados existentes, execute:

# mysqldump -u root -p --add-drop-table -x -e -A > backup.sql

Onde:

-u root – Especifica qual o usuário que irá conectar no mySQL para executar o backup;
-p – Irá solicitor a senha do usuário especificado na opção –u;
--add-drop-table – Utilizado quando for restaurar esse backup, caso já exista a base no destino, a mesma será sobre escrita;
-x – trava as bases de dados no momento em que cada uma é copiada, evitando qualquer problema de inconsistência;
-e – Utilizada para otimizar o processo de backup, permitindo ao mysqldump combinar argumentos INSERT dentro das tabelas, tornando o backup e restauração mais rápidos;
-a – Informa que é para fazer um backup completo de todas as bases de dados existentes;
- > – Redireciona para um arquivo de texto que conterá o backup.

Realizar o restore da base de dados mySQL

Observação: Para restaurar um backup deve-se utilizar o utilitário mysql

mysql -u root -p12345 --database=nome_da_base < backup.sql

Se a base já existir no destino, será retornada a mensagem de erro abaixo:

ERROR 1050 at line 19: Table 'xpto' already exists

Caso isso ocorra, será necessário deletar a base de dados existente no destino, com o procedimento abaixo:

# mysql -u root -p
Enter password:
mysql> DROP DATABASE xpto;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE DATABASE xpto;
mysql> exit

Bye

Nenhum comentário:

Postar um comentário