Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux
» Screenshot
Linux: Slackware Perfeito
Por talon



» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper
Linux: tux_planet
Por assuero

Dica

Automatizando o processo de backup do MySQL
Linux user
Publicado por Fábio Berbert de Paula em 12/11/2002

Login: fabio, 5284606 pontos Homepage: https://twitter.com/fabiodovol
[ Hits: 23048 ]

Automatizando o processo de backup do MySQL


Nessa dica vamos ver como realizar um backup de um banco de dados do MySQLe como automatizar este processo de backup. Vamos partir do princípio quetemos um banco de dados chamado meuBanco, na máquina localhostque é acessado pelo usuário armenio com senha jujuba.

Então vamos resumir as informações de nosso exemplo:

Database: meuBanco
Host: localhost
Username: armenio
Password: jujuba

O programa responsável pela realização de backup do MySQL é o mysqldump,que já vem distribuído junto com o banco de dados. O mysqldump gera um arquivocom comandos SQL que cria o esquema das tabelas de seu banco de dados erestauram os registros das tabelas. Vamos iniciar com um exemplo prático decomo fazer um backup completo de nosso banco de dados:

$ mysqldump -h localhost -u armenio -pjujuba meuBanco > backup_meuBanco.sql

Bem simples não, no comando acima podemos perceber claramente que foi geradoum backup de nosso banco no arquivo backup_meuBanco.sql. O mysqldump possuidiversas opções para realização de backup personalizado. Você pode configurá-lopara fazer cópia apenas das estruturas das tabelas, apenas os registros, escolhero tipo de sintaxe dos comandos SQL e afins. Digite "man mysqldump" paramaiores informações.

Agora que aprendemos a fazer cópia de nosso banco de dados, vamos aprender a automatizar o processo de backup. Criaremos um simples script para realizaro backup e nomear as cópias nomeadas com a data atual.
#!/bin/sh
# mysqlBackup.sh

DATA=`/bin/date +%Y%m%d`

# NOME armazena o nome do arquivo de backup, neste casoi
# o diretório é /home/fabio/backup, configure aqui o seu
# diretório de backup
NOME="/home/fabio/backup/meuBanco-$DATA.sql"

# variáveis do MySQL
HOST="localhost"
USER="armenio"
PASSWORD="jujuba"
DATABASE="meuBanco"

mysqldump -h $HOST -u $USER -p$PASSWORD > $NOME
Uma vez criado o script mysqlBackup.sh, vamos agendar sua execução diáriano cron. Neste exemplo quero que o script seja executado todos os dias àsduas da manhã. Digite:

crontab -e

E adicione a linha:

0 2 * * * /bin/sh /home/fabio/mysqlBackup.sh

Restaurar um backup é simples, basta você acessar o shell do MySQL e colaro conteúdo do arquivo gerado. Uma das formas de se restaurar um backup éa seguinte:

mysql -h localhost -u armenio -pjujuba meuBanco < meuBanco-20020924.sql

Onde meuBanco-20020924.sql é o arquivo com os comandos SQL.

Atenciosamente,
Fábio Berbert de Paula
fabio@vivaolinux.com.br

Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada Solucionando o erro de "Bind on TCP/IP port" no MySQL
   Dica Linux recomendada Convertendo tabela Paradox .DB para MySQL
   Dica Linux recomendada Acelerando a velocidade de conexão das páginas do MSN-Proxy
   Dica Linux recomendada PHPMyAdmin - Erro 1045 (Debian - definitivo)
   Dica Linux recomendada Migrando .DBF para MySQL

Comentários
[1] Comentário enviado por lamss em 26/06/2004 - 19:04h:

Oi, gostei de sua dica pois estava a procurar na net sobre como fazer um backup simples e eficiente... mas...

Só para uma pequena correção pois deu erro... na execução...

mysqldump -h $HOST -u $USER -p$PASSWORD $DATABASE > $NOME

valeu mutcho louco...

[2] Comentário enviado por eduengler em 01/09/2004 - 23:53h:

não concordo com o colega..
testei o script e nada de BKP

este que disponho abaixo, fiz e é eficaz, dispõe comandos disposto dentro do man mysqldump
............................................

#!/bin/sh
# mysqlBackup.sh

DATA=`/bin/date +%d-%m-%Y`

# NOME armazena o nome do arquivo de backup.
# o diretório é /home/kurumin/mysql/backup, configure o seu.
NOME="/home/kurumin/mysql/backup/bkptest-$DATA.sql"

#DB é o nome do banco de dados, use o seu.
DB="test"

mysqldump --opt $DB > $NOME

[3] Comentário enviado por fabio em 01/09/2004 - 23:56h:

Ué, seu MySQL roda sem senha? Tá acessando MySQL como root e sem senha meu colega!?!??????????????

kkkkkkkkkkkkkkk

[4] Comentário enviado por filype em 24/11/2005 - 08:57h:

muito bom fábio...

Aqui só deu um problema com a data

[5] Comentário enviado por sapiras em 12/12/2005 - 16:07h:

Na seguinte linha: DATA=`/bin/date +%d-%m-%Y

Qual o significado de DATA?

[6] Comentário enviado por higorcista em 14/06/2006 - 14:15h:

DATA?!bom pelo oq eu entendi essa variavél DATA irá acrecentar no nome do arquivo a data atual q esta dentro do (arquivo/comando/diretório) /bin/date, e a data acrescenta no nome do arquivo saira na ondem de + %d dia, %m mês e %Y ano...espero q eu tenha interpretado certo!!rs

[7] Comentário enviado por balani em 15/07/2007 - 17:37h:

Simples e eficaz

[8] Comentário enviado por eduardompozzi em 12/11/2007 - 11:29h:

?comentario= Na verdade a data vai sair como Ano Mes e Dia que é o padrão do MySQL mesmo.. Só que como no linux isso tem que ser configurado vc mesmo coloca a bagaça.. xD..
De resto é o que o higorcista falou mesmo..

[9] Comentário enviado por brunorojo em 05/05/2008 - 16:09h:

... Resolvido.

[10] Comentário enviado por brunorojo em 08/05/2008 - 19:41h:

Vale lembrar que devem colocar o script na pasta do usuário, acredito q todos sejam padrão "/root/"

Quebrei q cabeça para descobrir isso.

[11] Comentário enviado por vinper em 10/07/2008 - 13:54h:

Muito bom! Estou procurando algum artigo como esse para fazer o mesmo procedimento no postgre. Alguém ja testou esse procedimento com o postgre, e sabe algum turorial para realizar tal tarefa?? uso a versao 8.3. sou novato em linux e na comunidade hehehee
valew moçada

[12] Comentário enviado por ronneesley em 21/03/2009 - 23:17h:

Script para backup do MySQL e PostgresSQL URL: www.analistasi.com.br ou direto http://analistasi.com.br/?p=49

[13] Comentário enviado por natanaeltp em 23/04/2009 - 18:32h:

Legal
Tem alguns detalhes que você esqueceu, o $DATABASE na linha de comando mysqldump
mysqldump -h $USER -u $USER -p$PASSWORD $DATABASE > $NOME

Valew.......


[14] Comentário enviado por lulled em 30/04/2010 - 11:51h:

Mesmo após todos esses anos que este artigo foi escrito, ainda me ajudou hoje! Valeu :D


Contribuir com comentário
CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.