[firebase-br] Gbak + Gfix com base de dados sendo acessada

Fabiano Moura mctbrasil em gmail.com
Ter Dez 28 09:43:16 -03 2010


*Bom dia!*

  O -sweep faz a coleta do lixo, para verificação do banco de dados, deverá
fazer o seguinte:
  gfix -v -full -user SYSDBA -password masterkey
caminho_do_banco\banco_de_dados.

  O único problema, que o banco de dados não poderá estar sendo usado. O que
você pode fazer, é dar o shutdown nos usuários ou fazer a validação do
backup, para isso, teria que restaurar o backup e depois validar ele. Com
isso, você saberia se o backup está OK ou não.



*Obrigado,*
*
*
*
*
*Fabiano Moura*

Em 28 de dezembro de 2010 05:06, Raphael Monteiro
<raphaelmonteiro em msn.com>escreveu:

> Prezados,
>
> Preciso criar uma rotina de backup de duas bases de dados no memso
> servidor,
> utilizando o crontab.
>
> Juntamente com um amigo, escrevi o seguinte script em shell para uma das
> bases:
>
> ####################
>
> #!/bin/bash
> #usuário do BD
> login="SYSDBA"
> # senha do usuário
> senha="masterkey"
> #caminho da sua base de dados
> dir="/home/empresa1"
> # data atual, dia, mês ano, do backup para ser concatenada no arquivo
> backup
> data=`date +%d%b%y-%H%M` #neste exemplo, gera a data assim: 22Dez10-0244
> # pasta + arquivo do BD
> banco="$dir/BAR.GDB"
> # pasta e arquivo de backup
> backup="$dir/BACKUP/BAR/$data.gbk" #gera o arquivo de backup na pasta BAR
> com
> o nome = a data.
> clear
> # Imprime o nome do arquivo de backup
> echo "Iniciando backup de $banco."
> # Executa gfix para verificar a integridade
> # executa o comando gfix para verificar a integridade do banco.
> echo "Verificando a integridade dos dados..."
> /usr/lib64/firebird/bin-superserver/gfix -v -f -user $login -password
> $senha
> $banco
> echo "Integridade do base da dados $banco ok!"
>
> echo "Validando os dados e eliminando fisicamente registros deletados..."
> /usr/lib64/firebird/bin-superserver/gfix -sweep -user $login -password
> $senha
> $banco
> echo "Validação ok!"
> # 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 ..."
> /usr/lib64/firebird/bin-superserver/gbak -b -user $login -password $senha
> $banco $backup
>
> #Compacta o Backup
> echo "Compactando o Arquivo de Backup ..."
> gzip -v $backup
> echo "Arquivo compactado com sucesso!"
> #usando o tar, nao deu certo, alem de que, o formato .GZ é requerido pelo
> fabricante do software. Alem de que, não precisei gerar uma rotina para
> apagar
> o backup original, sendo que o gzip ZIPA e apaga o original.
>
> #Removendo arquivos antigos
> echo "Removendo backups com mais de 30 dias"
> find /home/empresa1/BACKUP/BAR/ -ctime +30 -exec rm -rf {} \;
> echo "Backups antigos removidos com sucesso!"
> echo "Backup realizado com sucesso!"
>
> ##############
>
> A pergunta é se posso rodar esta rotina com os usuários conectados ao banco
> e
> se vocês tem alguma sugestão de utilizaçao para a rotina.
>
> Atenciosamente, Raphael Monteiro
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista