Backup do Firebird por data - via rede ou local

Publicado por Davi Ribeiro 30/07/2009

[ Hits: 14.448 ]

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 ([email protected]) 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

Instalação para Placa Atheros

mailnow - Envia mensagens pelo shell

Firewall com Iptable - rc.Firewall

Calculadora de host de uma rede

FTP Linux-Windows Baseado na Data Atual


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts