[firebase-br] RES: Banco Crescendo Rapidamente
Rafael | SGBR Sistemas |
rafael em sgbr.com.br
Sáb Fev 2 08:33:51 -03 2013
Gladiston, seguinte vou te explicar como faço o back-restore
automaticamente, primeiro verifico se não tem ninguém conectado na base de
dados, se não tiver não faço drama, faço uma cópia da base de dados,
renomeio a original pra nenhum engraçadinho tentar se conectar nela e mudar
os dados (automaticamente, tudo sem o usuário saber, feito pela aplicação
mesmo), faço um backup da base (backup mesmo, conforme segue abaixo:
with IBbackupService1 do Begin
ServerName := 'Servidor';
Protocol := Local;
LoginPrompt := False;
Params.Clear;
Params.Add( 'user_name=SYSDBA' );
Params.Add( 'password=masterkey' );
Active := True;
Try
Verbose := True;
Options := [NonTransportable];
DataBaseName := CaminhoFDB;
BackupFile.Clear;
BackupFile.Add(ExtractFilePath(EditArquivoBackup1.Text)+'Back - ' +
FormatFloat('00',Dia)+FormatFloat('00',Mes)+ FormatFloat('0000',Ano)+'-'+
FormatFloat('00',Hora)+ FormatFloat('00',Min)+
FormatFloat('00',Seg)+'.FBK');
ServiceStart;
Logo depois, faço restore, e renomeio a base para o nome original, lembrando
que isso tudo faço de forma automática, tudo pela aplicação, sem intervenção
do usuário, tem uma configuração que o usuário diz o intervalo de hora que o
sistema pode fazer essa manutenção dos dados, geralmente uma hora que
somente o servidor esteja ligado e que a empresa esteja fechada, lembrando
também que se tiver usuário conectado nesse momento eu derrubo ele, com
ciência do cliente claro, também só faço isso quando o tamanho da base
cresce mais de 20% do tamanho do ultimo back-restore, então não tem data
certa pra ocorrer, mas tem funcionado legal, é uma gambiarra, mas acho que
não terei problemas com isso neh, tipo de corromper o banco pode ter demais
back-restore, oque vcs acham?
Rafa
-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Gladiston
Santana
Enviada em: sexta-feira, 1 de fevereiro de 2013 17:01
Para: FireBase
Assunto: Re: [firebase-br] Banco Crescendo Rapidamente
Você faz o backup diariamente ?
Quando eu digo backup, me refiro a ferramenta de backup do proprio firebird
(gbak ou api). Parece absurdo, mas tem gente que copia o arquivo de dados
achando que isso é backup.
Se faz backup diariamente então desligue o sweep (limpeza de lixo) do
automático, pois o backup já faz isso.
Mas tem que ser diário no minimo, se houver intervalos menores de backup,
melhor ainda (eu prometi a mim mesmo que iria estudar o nbackup esse ano).
Se mesmo assim sua base cresce muito, então provavelmente é porque há
insert/delete demais em sua aplicação, mas não se preocupe, aquilo que foi
limpo com o delete será reaproveitado pelos próximos inserts sempre que
possível. Mas se você tem 'deletes' muito maiores do que 'inserts', muito
provavelmente seu banco tenderá a crescer mais até estabilizar-se num
tamanho (se voce faz backup rotineiramente).
O tamanho não é importante nesses casos, porque grande parte é apenas
páginas em branco (antes ocupado por registros apagados) e a performance não
é prejudicada porque os índices e as estatísticas mantém-se no banco.
O garbage por outro deve ser sempre limpo por meio do backup, e não deve ser
limpo manualmente usando gfix, caso contrário não haverá um checkpoint
válido para todos os registros transacionados desde o ultimo backup e se
houver um crash no meio do expediente, a base estará corrompida. Se o
garbage existisse desde o ultimo backup, provavelmente ele se recuperaria
automaticamente sozinho.
Diante dessas informações você deve ter chegado a conclusão que não é bom
ficar realizando backup/restore, gfix,... e realmente não é.
Nem toda informação que reluz na lista é ouro, muito cuidado.
Gladiston Santana
Departamento de TI
Grupo Vidy
Tel (11) 4787-3122 ramal 228
Rod. Régis Bittencourt 3360 - Km 272,5
Taboão da Serra - SP - CEP: 06793-000
Visite nosso site: www.vidy.com.br
Visite também : www.expolabor.com.br
Em 1 de fevereiro de 2013 09:18, Diego Bulgarelli
<diegobulg em gmail.com>escreveu:
> Bom dia! :)
>
> Aconteceu do banco de dados aumentar de 44MB para 867MB em apenas duas
> semanas!
> Após fazer um backup/restore ele voltou para 45MB aparentemente sem
> perder dados.
> Isso acontecer apenas em um cliente novo que está usando windows 2008
> e Firebird 2.5.
>
> Alguém sabe o que pode estar gerando este aumento?
> Isso é normal? Pode perder performance ou perda de dados?
>
> Grato
> Diego Bulgarelli
> ______________________________________________
> 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
>
______________________________________________
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