Whats new? | Login
Cadastre-se | Atendimento | RSS
 
Live chat by Netwatts
Home Entenda o site Revistas Canais Cursos Palestras Suporte Fórum +Serviços Assine Compre Créditos
Você está em: / canal Delphi [artigos]
   + Delphi:   artigos   |   vídeos   |    cursos   |    mais
 
 
Outras seções:
Home 
Entenda o site 
Revistas 
Canais 
Cursos 
Palestras 
Suporte 
Fórum 
Oportunidades 
 Todos os links 

 
  Ir para o Canal Delphi  
+Canais:
Canal Delphi 
Canal Java 
Canal .net 
Canal Banco de dados 
Canal Mobile 
Canal Ruby on Rails 
Canal PHP 
Canal ASP 
Canal WebDesign 
Canal Engenharia de Software 
Canal Linux 
Canal Scripting 
Canal Outros 
  Todo conteúdo DevMedia 

 
  ver cursos de Delphi  
+Cursos:
Cursos de Java 
Cursos de .net 
Cursos de Banco de dados 
Cursos de Delphi 
Cursos de Engenharia de Software 
Cursos de Ruby on Rails 
Cursos de ASP 
Cursos de WebDesign 
Cursos de PHP 
Cursos de PalmOS 
Cursos de Linux 
Cursos de Scripting 
  Formações completas 
  Todos os cursos 

 
Canal de conteúdo Delphi
Revista ClubeDelphi
Suporte Delphi
Formacoes completas Delphi
Palestras de Delphi
E-books de Delphi
Downloads de Delphi
 

+Revistas:
ClubeDelphi 
.net Magazine 
Java Magazine 
webMobile Magazine 
SQL Magazine 
Engenharia de Software Magazine 
  Edições anteriores impressas 
  Todas as revistas 


[Fechar]
Este post está disponível para quem é assinante da ClubeDelphi ou para quem possui Créditos DevMedia.


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

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 0,00 (assinante) ou R$ 0,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 0,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia


Sistema completo para Backup/Restore com Firebird - Parte I

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á.





STAVARENGO, RAFAEL
Cinco anos de experiência com Delphi. Na 3º série do ensino superior. Portifólio: http://www.rafaelstavarengo.110mb.com/
Ver space do autor


Estatísticas deste post:
Visualizações:  18210
Favoritado:  20 vez(es)
 
Conteúdo:
Didática:
Utilidade:
3 1
Feedbacks: 4

  Central de Serviços:
Inclua seu próprio artigo! (ajuda)
Participe! Inclua um comentário
Adicionar este post a Favoritos
Marcar este post como lido/assistido
Inclua uma anotação pessoal (ajuda)
RSS Feeds
Versão para impressão



Participe! Inclua um comentário
[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


frostlost
16/11/2007 20:29
 Cade o arquivo?
Cade o arquivo para download?
Responder


Rafael Stavarengo
12/3/2007 5:17:18 PM
 arquivo para download
cara o arquivo de download ta ai
Responder


Livia Martella
3/6/2008 1:27:34 PM
 list view
Rafael você tem algum e-mail que possamos dividir experiencias sobre o delphi?
Responder



Rafael Stavarengo
7/1/2008 8:35:31 PM
[* Comentário do autor]

 Rafael Stavarengo
ola Livia desculpe a demora em responder tenho um email sim... se precisar estarei a disposição em faelsta@hotmail.com
Responder
João Paulo Souza Silva
14/2/2008 22:25
 Erro no backup
Esta dando um erro no backup '--------------------------- Debugger Exception Notification --------------------------- Project MATERIAIS.exe raised exception class EIBInterBaseError with message 'message length error (encountered 96, expected 92)'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- O que pode ser? Debuguei e o erro é quando está preenchendo as linhas do memo.
Responder
renyldo
6/5/2008 09:50
 cadê?
onde esta o arquivo para downloads.
Responder


fabio
6/9/2008 11:19:41 AM
 onde está
Amigo, o link p/ download ta abaixo da foto do criador do post, escrito em preto com funto amarelo q diz: "Clique aqui para fazer o download associado a este post"
Responder

Equipe DevMedia
22/4/2009 16:55
 Artigos backup firebird.
2 excelentes artigos Rafael, parabéns e obrigado! Me ajudou muito.
Responder



STAVARENGO, RAFAEL
5/27/2009 4:48:16 PM
[* Comentário do autor]

 Obrigado
Obrigado! [ ]
Responder
WILLIAN RAFHAEL NUNES CUSTóDIO
8/5/2009 11:00
 Como colocar progressbar???
olá!!
belo post, me ajudou muito
quero saber como colocar um progressbar para mostrar o andamento do backup... tem como alguem ajudar?

obrigado!!
Responder



STAVARENGO, RAFAEL
5/27/2009 4:53:57 PM
[* Comentário do autor]

 ProgressBar
Willian, um PorgressBar fica dificil pois voce não tem como saber quantas "ciclos" ainda faltam para que o FireBird termine o backup, porem você pode colocar qualquer coisa que fique se mexendo para que o usuário veja que o sistema nao travou. Essa "coisa" que vai ficar se mexendo pode ser um GIF, um objeto que fica trocando de cor a cada ciclo ou até mesmo um ProgressBar que fica indo ate o fim e voltando para indicar que o programa nao travou.
Responder
EVERTON ANTONIO DA COSTA
6/1/2010 14:47
 Procedimento de Backup

Existe a possibilidade de um Estação (Cliente) realizar o BackUp do servidor ?

Responder
[Fechar]

Você precisa estar logado para dar seu feedback.

Clique aqui para efetuar o login

Caso não tenha um cadastro DevMedia, clique aqui para se cadastrar (gratuito)
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
2009 - Todos os Direitos Reservados a DevMedia Group