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
- Faça o download do script no SourceFourge: http://sourceforge.net/projects/automysqlbackup
- Descompacte o scriptusando o comando "tar -xvf" no seu diretório home
- Execute o script install.sh
- Caso você tenha optado pelas configurações padrão o arquivo de configuração estará em /etc/automysqlbackup/
Configuração do Script
- 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.
- 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'
- 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