rmonteiraum
(usa CentOS)
Enviado em 05/01/2011 - 19:06h
Boa noite.
*m4tri_x*
Realmente, preciso fazer backup da base de dados com os usuários conectados, em banco de produção online.
No win, o Fibs desempenha esta tarefa, porém, notei que log dele gerava o mesmo erro.
Entrei em contato com o fabricante do software que acessa a base de dados e ele acabou confirmando que a opção de fazer manutenção na base de dados enquanto realiza o backup, deve ser desativada pois pode levar ao desligamento da base de dados e consequentemente, a desconexão dos usuários.
*dastyler*
O Script que eu postei, funciona bem.
O problema "era" fazer o backup em "tempos" diferentes para não sobrecarregar o processador ( o que descobri ser uma besteira, já que eu poderia fazer uns 10 backups ao memso tempo que o Core2Quad Xeon nem sentiria cócegas. testei... rsrs)
De qualquer forma, o m4tri_x sugeriu um sleep na execução do script e por cautela, apliquei a sugestão. Tá rodando show.
Voltando a linha de tempo do forum, o problema agora "era) (denovo) a desconexão súbita dos usuários e desligamento da base de dados. Resolvi, desabilitando a execução do GFIX durante o backup.
Aí sim, vem o problema.
Faço o backup com o gbak, normal, sem corrigir, limpar, fazer manutenção na base, etc.
No script acima, adicionei alguns parametros e ficou assim:
# /usr/lib64/firebird/bin-superserver/gbak -b -t -g -co -user $login -password $senha $banco $backup -y $dir/BACKUP/LOG/bar$data3.log -v
Blz, tá fazendo o backup, gerando log do backup, etc...
Mas, quero fazer a manutenção da base.
Coloquei "tico e teco" pra trabalhar e cheguei a uma conclusão que, na lógica, funciona, mas como sou novato em sistemas GNU/Linux, decidi compartilhar com vocês a minha idéia.
No script q postei anteriormente, a idéia é:
############
1-Iniciar o backup copiando a base de dados em uso;
# cp $banco /BACKUP/$data
2-Verificar a integridade da base da dados copiada para a pasta /BACKUP com o gfix;
# /usr/lib64/firebird/bin-superserver/gfix -v -f -user $login -password $senha /BACKUP/$data
3-Validar a base da dados com o gfix;
# /usr/lib64/firebird/bin-superserver/gfix -sweep -user $login -password $senha /BACKUP/$data
(enfim, o backup)
4-Realizar o backup;
# /usr/lib64/firebird/bin-superserver/gbak -b -t -g -co -user $login -password $senha /BACKUP/$data $backup -y $dir/BACKUP/LOG/bar$data3.log -v
5-Compactar a base que recebeu manutenção e foi backupeada
# gzip -v $backup
6-Remover os backups com mais de 30 dias;
find /home/empresa/BACKUP/BAR/ -ctime +30 -exec rm -rf {} \;
7-Remover a base de dados que foi copiada no início do script
rm /home/empresa/BACKUP/BAR/$data rm -rf
##############
Pergunta:
1- Posso copiar a base no meio de um acesso ou gravação na base?
2- Se sim, vai dar certo. Se não, alguma sugestão?
Abraços