Backup do Firebird por data - via rede ou local

Publicado por Davi Ribeiro 30/07/2009

[ Hits: 16.058 ]

Download backup_firebird_script




Script simplificado para backup de database Firebird, efetua backups diários. O ideal seria jogar o script no seu cron para efetuar o backup diariamente, como no /etc/crontab abaixo:

01 * * * * root run-parts /etc/cron.hourly
00 22 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

No meu caso coloquei o script em /etc/cron.daily, executando todo dia às 22h.

  



Esconder código-fonte

#!/bin/bash
##Script desenvolvido por davi (daviantunes27@hotmail.com) para backup do firebird que efetua backup por horário. 
##Funcionou OK comigo, mas favor testar o uso do mesmo antes de coloca-lo em produção, e claro, como este é distribuido sob a GPL v2, 
##use por sua própria conta e risco e tambem gostaria de lembrar que não sou o responsavel pelo uso indevido do mesmo.

#Primeiro: caminho da base de dados(sim, funciona puxando BD´s rodando no Windows!! ;-P)
BD='192.168.0.16:C:\Database_Path\DATABASE.FDB'

##Exemplo de uso fazendo backup de servidor linux - caminho do databse:
#BD='192.168.0.1:/data/MEU_DATABASE.FDB'

BKP='/fbdata'

#Data
DIA=$(date +%d%m%Y%H%M)

##Caminho completo aonde estao localizados os programas para backup e manutenção do Firebird:
GBAK='/opt/firebird/bin/gbak'
GFIX='/opt/firebird/bin/gfix'

##Usuario do bd firebird no servidor aonde esta localizado o BD
USR='SYSDBA'

##Senha do bd firebird - senha do SYSDBA no servidor do BD
PSW='masterkey'

##Fecha e repara a base de dados
##Fechando:
echo "Fechando a base de dados..."
$GFIX -force 0 -user $USR -password $PSW $BD
$GFIX -sweep -user $USR -password $PSW $BD
$GFIX -mend -full -user $USR -password $PSW $BD


##Backup da base de dados com data
echo "Efetuando o backup da base de dados..."
$GBAK -g -v -z -t -user $USR -password $PSW $BD $BKP/$DIA-backup.fbk

##Volta o BD para o estado ONLINE - religacao
$GFIX -online -user $USR -password $PSW $BD

Scripts recomendados

Velox + Ip Dinâmico

Firewall básico

Backup com TAR em LOG usando FITA LTO/DLT com filtro de arquivos

Instalação do Microsoft Edge no Linux

Atualização para KDE 3.5.2


  

Comentários
[1] Comentário enviado por rudielle em 21/07/2010 - 11:30h

Amigo, estava querendo proceder da seguinte maneira, nem sei se tem como. Exemplo.: 4 horas da manhã, eu programo o servidor para a seguinte tarefa:
Primeiro: Parar a executação da base de dados.
Segundo: Renomear ela para outro nome.
Terceiro: Executar o Gfix
Quarto: Executar o Gbak
Quinto: Restaurar o banco no qual eu fiz esse Gbak com o nome da minha base de dados.
Sexto: Religar esse banco.
Sétimo: Deixar o banco que fez o gfix e gbak como o banco atual, ficando a cópia de segurança para caso alguma coisa saia errado, do banco antigo no qual renomeamos no começo do processo.
Tem como?

[2] Comentário enviado por dastyler em 29/07/2010 - 23:20h

Olá Rudielle,

Não sei se voce conseguiu resolver a questão, mas tudo o que voce precisa é incluir no script o comando mv adicionando o valor da data antes do processo de backup.
Para restaurar o banco, voce pode usar o comando semelhante ao abaixo:

$GBAK -create -v -user nome_do_usuario -password senha_do_usuario arquivo_de_backup NOME_DO_BANCO (aonde pode ser o nome do arquivo original do banco ou do renomeado).

Na verdade o script renomea o backup incluindo a data no nome do backup.
Uma observação importante: faça o teste fora do ambiente de produção (em uma pasta separada) adeqando o script. Dando certo, coloque o banco no crontab para executar diariamente:

00 4 * * * root /caminho/para/o/script


[]´s

[3] Comentário enviado por imlise em 21/04/2013 - 21:53h

Olá Davi, muito útil seu texto. Gostaria de fazer uma pergunta: consigo fazer um insert numa das tabelas do banco de dados com a data/hora do backup? Via linha de comando, antes ou mesmo depois da execução do gbak. Tenho uma aplicação que precisa exibir essa data.


Contribuir com comentário