você está aqui: Home  → Arquivo de Mensagens

AutoMySQLBackup - Uma solução para Backup de Bases de Dados MySQL

Colaboração: Ernesto Charles Niklaus

Data de Publicação: 20 de outubro de 2013

Em 2011 publiquei uma dica usando comando Find para deleção de arquivos, e usei a limpeza de antigos arquivos de backup da minha base de dados usando esta ferramenta como exemplo. Nos comentários da dica o André Gomes havia me perguntado sobre esta ferramenta de backup de MySQL e respondi apenas mandando o link.

Hoje lendo a dica do Cesar Brod sobre "Por que contribuir para o Dicas-L", resolvi reler minhas dicas e procurar algo que tenha sido publicado sobre esta poderosa ferramenta. Como não encontrei nada decidi compartilhar o que para mim tem sido a solução para backup das minhas bases de dados Mysql.

Vamos à Dica:

AutoMySQLBackup

AutoMySQLBackup com uma configuração simples pode criar backups Diários, Semanais e Mensais de uma ou mais bases de dados MYSQL localizados em um ou mais servidores. Além disso esta ferramenta inclui funções como:

  • Notificação por E-Mail
  • Compressão e Criptografia dos arquivos de Backup
  • Rotação de Backup Configurável
  • Backup Incremental da Base de Dados
  • Pode enviar o arquivo de backup por e-mail
  • Permite configurar comandos de pré e pós processamento

Instalação

  1. Faça o download do script no SourceFourge: http://sourceforge.net/projects/automysqlbackup
  2. Descompacte o scriptusando o comando "tar -xvf" no seu diretório home
  3. Execute o script install.sh
  4. Caso você tenha optado pelas configurações padrão o arquivo de configuração estará em /etc/automysqlbackup/

Configuração do Script

  1. Abra o arquivo de configuração automysqlbackup.conf, como você pode perceber ele tem muitas opções, porém vamos tratar nesta dica das mais básicas.
  2. Localize as linhas abaixo no arquivo de configuração, remova o # conforme abaixo e insira seu usuário e senha com permissão para acesso às bases de dados:

      # Username to access the MySQL server e.g. dbuser
      CONFIG_mysql_dump_username='seu usuário, pode ser o root'
      # Password to access the MySQL server e.g. password
      CONFIG_mysql_dump_password='sua senha'
      # Host name (or IP address) of MySQL server e.g localhost
      CONFIG_mysql_dump_host='localhost ou ip do seu servidor MYSQL'
      # Backup directory location e.g /backups
      CONFIG_backup_dir='/pasta/onde/ficara/o/backup'
    

  3. Para configurar quais bases você quer inserir no backup edite esta área do arquivo de configuração:

      # Databases to backup
      
      # List of databases for Daily/Weekly Backup e.g. ( 'DB1' 'DB2' 'DB3' ... )
      # set to (), i.e. empty, if you want to backup all databases
      #CONFIG_db_names=()
      # You can use
      #declare -a MDBNAMES=( "${DBNAMES[@]}" 'added entry1' 'added entry2' ... )
      # INSTEAD to copy the contents of $DBNAMES and add further entries (optional).
      
      # List of databases for Monthly Backups.
      # set to (), i.e. empty, if you want to backup all databases
      #CONFIG_db_month_names=() -> Aqui insira o nome das bases de dados, ou deixe em branco para fazer backup de todas
      
      # List of DBNAMES to EXLUCDE if DBNAMES is empty, i.e. ().
      #CONFIG_db_exclude=( 'information_schema' )
      
      # List of tables to exclude, in the form db_name.table_name
      # You may use wildcards for the table names, i.e. 'mydb.a*' selects all tables starting with an 'a'.
      # However we only offer the wildcard '*', matching everything that could appear, which translates to the
      # '%' wildcard in mysql.
      #CONFIG_table_exclude=()
    

Colocando o brinquedo para funcionar

Se você utilizou o install.sh o configurador já colocou o script em /usr/sbin/automysqlbackup. então é só executar automysqlbackup e ver seu backup aparecer na pasta selecionada.

Para automatizar o processo, você pode incluir uma chamada do script em cron.daily

  $ vi /etc/cron.daily
  
  #!/bin/sh
  test -x /usr/sbin/automysqlbackup && /usr/sbin/automysqlbackup
Ernesto Charles Niklaus é especialista em EDI na Applied Solutions


Veja a relação completa dos artigos de Ernesto Charles Niklaus

 

 

Opinião dos Leitores

Diego
20 Set 2014, 09:50
Valeu pela dica.
Me ajudou bastante.
Iniciei a pouco tempo o curso de mysql pelo curso adv,
www.cursoadv.com.br
Estou sempre treinando em casa e procurando por tutorais, achei seu site muito bom.
Parabéns
Ernesto Niklaus
21 Ago 2014, 17:48
Lilian,

O MysqlBackup permite salvar em qualquer diretório, é só mapear o Storage no seu servidor

Thiago,

O MysqlBackup salva arquivos .sql compactados, com todo dump de seu BD. Você neste caso dá um mysql -u [user] -p [password] < arquivo_do_backup.sql (lembre de descompactá-lo). Ele gera dumps completos quando não usa a versão incremental, na incremental apenas as mudanças. Uma sugestão é restaurar em outro SGBD e copiar apenas os dados que perdeu caso seja um corrompimento.
Lilian
21 Ago 2014, 16:49
Tenho uma dúvida quanto ao salvar o backup.
Posso salvá-lo em um storage? Por exemplo.
Thiago Motta
25 Jul 2014, 12:50
Opa, muito bom, muito mesmo...
Alterei a chave CONFIG_mysql_dump_differential para 'yes'
Essa chave que faz o backup incremental funcionar, certo?

Só tenho uma dúvida pequena, mas de grande importância.
Como farei depois para restaurar o banco de dados?

Imagina uma situação em que eu tenha o arquivo do backup inicial, esse arquivo tem 10Mb. Depois disso, diariamente, foi feito 1 backup incremental. Após 30 dias, terei 31 arquivos, certo? Bom, logicamente preciso guardar todos esses arquivos. Como farei depois para restaurar?

Obrigado ;)
Leonardo Rocco
26 Nov 2013, 12:20
ótima dica!! Valeu :)
Ernesto Niklaus
22 Out 2013, 09:32
Guilherme,

Para recuperar você descompacta o arquivo de backup, por ser um sql é só dar o comando mysql -u [seu usuário com permissão de admin] -p [sua senha de admin] < arquivo_de_backup_a_ser_restaurado.sql

Também é extremamente útil quando você quer ter replicação offline. Você manda os arquivos Daily para outro servidor e aplica neles... ele vai criar a base e popular...
Guilherme
22 Out 2013, 07:18
Funfou belezinha!!!
Vi que ele gera um arquivo compactado com o sql de recuperação.
Alguma dica de ferramenta para recuperação dos dados?
Ernesto Niklaus
21 Out 2013, 17:07
Cesar,

Depois por favor nos diga sua opinião sobre o mesmo.
Cesar Brod
20 Out 2013, 12:27
Perfeita a dica! vou testá-la ainda hoje!
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script