As base de dados do MySQL, nas atuais distribuições do linux, são salvas dentro de /var/lib/mysql. Existem duas formas de gerar um backup dessas bases, a primeira e criando um arquivo tar.gz do conteúdo das pasta /var/lib/mysql, a segunda é usar um próprio método do mysql, o mysqldump. Na primeira opção existe alguns problemas, como: os dados podem serem inconsistente, caso o banco seja usado no momento em que a backup esteja sendo executado. Para garantir a integridade é necessário para o MySQL, o que é outro problema. pois o serviço vai ficar fora do ar durando o backup. O mysqldump, provavelmente é a opção mais usada, pois faz o backup online e garante a integridade, pois ele lê as informações armazenadas nas bases de dados.
- Método tar.gz
- /etc/init.d/mysql stop
- tar -zcvf mysql.tar.gz /var/lib/mysql/
- /etc/init.d/mysql start
- mysqldump
- mysqldump -u root -p -x -e -A > backup.sql
- -u: especifica o usuário que usado para acessar o banco de dados
- -p: senha do usuário
- -x: bloqueia as bases de dados no momento em que cada uma é copiada
- -e: opção de otimização, que permite ao mysqldump combinar argumentos INSERT dentro das tabelas, o que torna tanto o backup quanto a restauração mais rápido
- -A: especifica o backup de todas as bases de dados
- mysqldump -u root -p -x -e -A | gzip > backup.sql.gz
- gera o arquivo compactado. para descompactar use o comando: gunzip backup.sql.gz
- mysqldump -u root -p12345 -x -e -A | gzip > backup.sql.gz
- essa opção deve ser usada em scripts, pois a senha já e passada no próprio comando, é extremamente importante restringir as permissões
- mysqldump -u root -p -x -e -B diego > diego.sql
- -B: substitui a opção "-A", deve ser informado qual base de dados deve ser backupeadas
- mysql -u root -p --database=diego < diego.sql
- Forma de restaurar a base de dados backupeada. Um erro será mostrado no momento da restauração, informando que não existe a base que está sendo restaura. Existe duas formas de resolver esse problema, a primeira é criar o base antes de restaurar e a segunda e gerar o backup já com as instruções para que as bases sejam excluídas e recriadas automaticamente durante a restauração. O comando para usado é: mysqldump --add-drop-table -u root -p -x -e -B diego > diego.sql
- mysql -u root -p < backup.sql
- Restaura todas as bases de dados
Nenhum comentário:
Postar um comentário