quinta-feira, 16 de julho de 2009

Script de backup do Firebird em Centos

Bom, vamos lá.

Todo mundo sabe da segurança que é fazer backup de qualquer banco de dados existente. Muitas empresas não estão nem aí para a segurança dos dados, mas vc já pensou em toda o rebuliço que ia acontecer se acaso o banco de dados fosse perdido ou corrompido ??

Chega de blá blá e vamos para mão na massa.

Gostou do blog, curta a página no Facebook.

Primeiramente acesse seu querido servidor linux e crie o arquivo backup_firebird.sh desta maneira:

vi /etc/cron.daily/backup_firebird.sh

Fazendo isso ele vai criar o arquivo backup_firebird.sh e abri-lo para edição, nesse arquivo insira os seguintes comandos:

#!/bin/bash
#usuário do BD
login="SYSDBA"
# senha do usuário
senha="masterkey" # senha do usuário
#caminho da sua base de dados
dir="/basedados"
# data atual, dia, mês e ano, do backup para ser concatenada no arquivo backup
data=`date +%d%m%y`
# Uma dica na data é deixá-la no formato data=`date +%d`, desse maneira o arquivo de backup #ficará como backup16.gbk, backup17.gbk, sendo que o número é o dia do mês, dessa maneira #sobreescreve os backups de 30 dias atrás.
# pasta + arquivo do BD
banco="$dir/teste.fdb"
# pasta e arquivo de backup
backup="$dir/backup/backup-$data.gbk"
clear
# Imprime o nome do arquivo de backup
echo "Iniciando backup dia $data."

# Executa gfix para verificar a integridade
# executa o comando gfix para verificar a integridade do banco.
echo "Verificando a integridade dos dados..."
/opt/firebird/bin/gfix -v -f -user $login -password $senha $banco


echo "Validando os dados e eliminando fisicamente registros deletados..."
/opt/firebird/bin/gfix -sweep -user $login -password $senha $banco

# Realiza o backup
# executa o gbak para fazer o backup e gera o nome do backup com o nome do banco + a data
echo "Realizando o Backup para o Arquivo: $backup ..."
/opt/firebird/bin/gbak -b -user $login -password $senha $banco $backup

Feito isso salve o arquivo e vá até a pasta /etc/cron.daily,
chown root:root backup_firebird.sh, para setar o dono e grupo do arquivo
chmod 770 backup_firebird.sh, para permissão de execução do arquivo.

Feito isso, ainda na pasta /etc/cron.daily, tente executar o arquivo dessa maneira
./backup_firebird.sh

Se nenhum erro aparecer, seu backup será executado na hora que foi programada no arquivo /etc/crontab na linha /etc/cron.daily.

Lembre-se tbm de tirar esses backups do servidor onde está instalado o bd, pois se caso o servidor explodir, ou sofrer algum atentado, o backup da base de dados se encontra em algum lugar longe dali