[firebase-br] RES: Banco Crescendo Rapidamente

Evandro Borges evandro1968 em msn.com
Seg Fev 4 07:50:14 -03 2013


Realmente se fizer muitos deletes e updates o banco aumenta rapidamente, já passei por isto.
Para contornar este problemas criei um campo com  char(1) na tabela e quando quero deletar este registro gravo um 'N' e faço select campos where campo_tal<>'N'
Evandro


> From: rafael em sgbr.com.br
> To: lista em firebase.com.br
> Date: Sat, 2 Feb 2013 08:33:51 -0200
> Subject: [firebase-br] RES:  Banco Crescendo Rapidamente
> 
> 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
> 
> 
> ______________________________________________
> 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