Sistema completo para Backup/Restore com Firebird - Parte I
Veja como implementar no seu sistema a opção para a execução de backup/restore sem a necessidade de usar um programa de terceiro.
Estatísticas:










votos: 4
Serviços:

Sistema completo para Backup/Restore com Firebird
Parte I - Backup
Sem dúvida a realização do backup/restore
da base de dados, indiferente do SGDB utilizado, é muito importante.
Existem muitas aplicações para a realização dessa rotina, inclusive na
versão free, porém, nada melhor do que o seu sistema fazer essa rotina internamente, de maneira automática ou sempre que o usuário quiser.
Esse
artigo ensina como usar o componente TIBBackupService para que você
possa criar uma aplicação com a opção de fazer o backup sempre que
necessário, com uma interface fácil para o usuário sem a necessidade de
usar um programa de terceiro. No arquivo zip, disponível para download,
você vai encontrar uma base de dados e o código fonte de uma aplicação
para acessar essa base. Na aplicação você encontrará uma tela para
conexão com a base de dados, uma para executar movimentações na tabela
de cliente e uma outra para execução do backup.
Como o intuído desse artigo é o de ensinar como fazer backup/restore através do Delphi,
não explicarei aqui o processo de construção da base de dados e nem da
aplicação que fará conexão com a base. Nós nos concentraremos apenas no
código para execução do backup. No próximo artigo eu explicarei como
fazer o restore da base de dados.
Como
dito acima, para a execução do backup nós usaremos o componente nativo
no Delphi 7 TIBBackupService. Ele pode ser encontrado na paleta InterBase Admin.
Então mãos a obra.
|
procedure TFGerarBackup.BTGeraBackClick(Sender: TObject); begin try if not SDArquBack.Execute then//se o usuário não informar onde será salvo o arquivo de backup
Exit; //cancela o procedimento Memo1.Clear; BTGeraBack.Enabled:=False; Memo1.Lines.Add('Preparando para gerar o backup...'); Memo1.Lines.Add(''); with IBBackupService1 do begin DMBanco.IBDB.Connected:=False;//desconecta da base de dados DatabaseName:=FPrincipal.EBase.Text;//caminho da base de dados ServerName:=FPrincipal.EServ.Text;//nome do servidor BackupFile.Clear; BackupFile.Add(SDArquBack.FileName);//adiciona o caminho do arquivo de backup escolhido pelo usuário Protocol:=TCP;//protocolo de conexão Params.Clear; Params.Add('user_name=SYSDBA');//nome de usuário Params.Add('password=masterkey');//senha do usuário Options:=[];//limpa a propriedade option {o bloco de if abaixo esta adicionando as opções de restauração de acordo com o que o usuário escolheu. Após esta listagem você encontra um link para um outro artigo onde você encontra mais informações sobre essas e outras opções de restauração} if CBIgnoChec.Checked then Options:=Options+[IgnoreChecksums]; if CBIgnoLimb.Checked then Options:=Options+[IgnoreLimbo]; if not CBRecoLixo.Checked then Options:=Options+[NoGarbageCollection]; if not CBTran.Checked then Options:=Options+[NonTransportable]; {a propriedade verbose do TIBBackupService especifica se durante o processo de backup será retornado para a aplicação o detalhamento da execução} Verbose:=CBDetalhes.Checked; Memo1.Lines.Add(' Ignorar checksum: '+BoolToStr(CBIgnoChec.Checked)); Memo1.Lines.Add(' Ignorar transações em limbo: '+BoolToStr(CBIgnoLimb.Checked)); Memo1.Lines.Add(' Coletar lixo: '+BoolToStr(CBRecoLixo.Checked)); Memo1.Lines.Add(' Formato transportável: '+BoolToStr(CBTran.Checked)); Memo1.Lines.Add(' Verbose: '+BoolToStr(CBTran.Checked)); Memo1.Lines.Add(' Nome do servidor: '+ServerName); Memo1.Lines.Add(''); Active:=True;//ativa o serviço de backup, mais ainda não inicia. Memo1.Lines.Add(''); Memo1.Lines.Add('/***INICIO***\'); Application.ProcessMessages; Memo1.Lines.Add(''); try ServiceStart;//inicia o processo de backup while not Eof do begin {conforme o backup vai sendo executado o nos podemos pegar os detalhes da sua execução através da função GetNextLine} Memo1.Lines.Add(GetNextLine); end; finally end; Active:=False;//desativa o serviço de backup Memo1.Lines.Add(''); Memo1.Lines.Add('/****FIM****\'); end; Memo1.Lines.Add(''); Memo1.Lines.Add(''); Memo1.Lines.Add('Backup concluído.'); DMBanco.IBDB.Connected:=True;//conecta o sistema na base de dados BTGeraBack.Enabled:=True; except on E: Exception do begin Memo1.Lines.Add('Ocorreu um erro inesperado. O backup não foi concluído.'); Memo1.Lines.Add('Informações da exceção:'); Memo1.Lines.Add(' '+E.Message); DMBanco.IBDB.Connected:=True;//conecta o sistema na base de dados BTGeraBack.Enabled:=True; end; end; end; |
Listagem 1 – Executando o backup da base de dados
Mostrar
os detalhes da execução do backup nem sempre é interessante, visto que
isso fará com que o tempo para o término do processo aumente
consideravelmente.
Você pode obter mais informações sobre o que são todas as opções de backup utilizadas neste artigo (entre outras), lendo este outro artigo: http://www.devmedia.com.br/articles/viewcomp.asp?comp=4877.
No próximo artigo eu falarei sobre o restore da base de dados. Até lá.

Participe! Inclua um comentário
16/11/2007 20:29
3/12/2007 17:17
6/3/2008 13:27
-2.jpg)
Rafael Stavarengo
1/7/2008 20:35
[responder]


14/2/2008 22:25
[responder]


6/5/2008 09:50
9/6/2008 11:19
[responder]


Equipe DevMedia
22/4/2009 16:55
[responder]


8/5/2009 11:00
belo post, me ajudou muito
quero saber como colocar um progressbar para mostrar o andamento do backup... tem como alguem ajudar?
obrigado!!
[responder]
-2.jpg)
STAVARENGO, RAFAEL
27/5/2009 16:53
[responder]


6/1/2010 14:47
Existe a possibilidade de um Estação (Cliente) realizar o BackUp do servidor ?
[responder]
-2.jpg)
STAVARENGO, RAFAEL
9/2/2010 15:53
Everton.
[responder]



Sistema completo para Backup/Restore com Firebird - Parte II

Utilize a interface TDI sem modificar sua aplicação

Sistema completo para Backup/Restore com Firebird - Parte I

Mudando o status da base de dados no Delphi

Utilizando o gBak do Firebird para efetuar backup/restore

Controle as exceções do seu sistema



Curso Online - Delphi Fundamental (Win32)

Curso Online-Aplicação Financeira com Delphi 2009 e MySQL

Curso on-line Rave Reports

Curso Online - Criando uma Aplicação multi-camadas Completa com Delphi

Rad Studio 2007-DBX4 e Firebird 2.0-Aplicação comercial de vendas do Inicio ao Fim

Introdução ao ASP

Curso Completo MySQL

jQuery – A Biblioteca JavaScript para Webdesigners




[vídeo] Consumindo os dados via ajax – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 3

[vídeo] Classe POCO – Consumindo dados com getJson do jQuery utilizando POCO EF 4.0 – Parte 1

Imprimindo Relatório : VCL Crystal Reports XI - Delphi

VCL Crystal Reports XI - Delphi

[vídeo] Gerenciamento das Comunicações - Curso Gerência de Projetos – Parte 8

[vídeo] Plano de Comunicação - Curso Gerência de Projetos – Parte 9

[vídeo] Seleção e Priorização de Projetos - Curso Gerência de Projetos – Parte 6

[vídeo] Escopo, metas, premissas, restrições - Curso Gerência de Projetos – Parte 7

[vídeo] Documento Conceitual do Projeto - Curso Gerência de Projetos – Parte 5


Você está em:





Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!


