Rotina de Backup e Restore de Banco de Dados Firebird

17/07/2009

Prezado Consultor,                        O meu projeto está precisando de uma Rotina de Backup e outra de Restore, que será acionada pelo usuário ao término de um dia de trabalho. Já tentei algumas que peguei na internet, mas não funcionam totalmente.  Voce poderia me enviar alguma rotina correta, pois o banco precisa ser guardado com segurança.                         Estou usando Delphi 2006 e Banco de Dados Firebird 1.5.                         Obrigado.                          Atenciosamente,                                           Pedro da Conceição                       
Pedro Conceição

Pedro Conceição

Curtidas 0

Respostas

Devmedia

Devmedia

17/07/2009

Pedro,
o suporte Devmedia não desenvolve pedaços de código e sim ajuda aos seus clientes a resolver um problema.
Nesse seu caso especificamente, a solução seria vc nos mostrar uma dessas rotinas e o consultor lhe ajudará tirando suas dúvidas, ok.
GOSTEI 0
Devmedia

Devmedia

17/07/2009

Pedro,
podemos cancelar esse chamado?
GOSTEI 0
Pedro Conceição

Pedro Conceição

17/07/2009

Prezado Consultor,               Como posso enviar a minha rotina para que voce analise?                Para não mandar todo o projeto, preparei uma pasta zipada em cd, para poder enviar. Estou trabalhando em um cybercafe, pois estou sem internet na minha casa temporiariamente.                Por favor me ajude.                Obrigado.                Atenciosamente,                              Pedro
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

17/07/2009

Olá Pedro,
  Você tem acesso ao disco virtual, lá você pode adicionar seus projetos, ou arquivos.
  Qual motivo as rotinas que você pegou, não funionam? Qual erro ? Qual é a necessidade, que você tem que estas não te atendem ?
  Fico no aguardo.

Att,

Wesley Y
GOSTEI 0
Devmedia

Devmedia

17/07/2009

Pedro,
na home do suporte, do lado esqerdo da tela, existe a opção "meu disco virtual". Funciona como os demais discos virtuais. A única restrição é que os arquivos upados devem estar no formato .zip ou .rar.
Caso tenha alguma dúvida, vc pode assistir ao video explicativo, q tem o seu link ao lado da opção do disco virtual.
Lembrando que: após upar o arquivo, vc deve copiar o caminho completo e enviar ao consultor, pois ele NÃO TEM ACESSO AO SEU DISCO VIRTUAL.
GOSTEI 0
Pedro Conceição

Pedro Conceição

17/07/2009

Prezado Consultor,               Obrigado.                Estou enviando a Pasta do meu projeto e a pasta onde esta o meu banco de dados.                O arquivo do meu banco é Secretaria.FDB.                Mais uma vez obrigado.                O  Caminho é o seguinte:               'https://www.devmedia.com.br/discovirtual/default.asp?f=\PedroVencedor'                 Atenciosamente,                       Pedro
GOSTEI 0
Devmedia

Devmedia

17/07/2009

Pedro,
o link q vc mandou é do seu disco virtual. precisamos do link do arquivo dentro do seu disco virtual, ou seja, o final do link deve ser o nome do arquivo.extensão (zip ou rar). Por favor, nos mande o link completo para que possamos lhe ajudar.
GOSTEI 0
Pedro Conceição

Pedro Conceição

17/07/2009

Prezado Consultor,             O link completo é:           'https://www.devmedia.com.br/discovirtual/default.asp?f=\PedroVencedor\ProjetoBAckupRestore.zip'             O meu Banco de Dados está em:           'https://www.devmedia.com.br/discovirtual/default.asp?f=\PedroVencedor\BancodeDadosdaSecretaria.zip'             Obrigado.             Atenciosamente,                           Pedro 
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

17/07/2009

Olá meu caro,
  Peço que espere um pouco, pois isso irá dar um pouco de trabalho, você tem noção da complexibilidade, certo ?
  Grato pela compreensão.


Att,

Wesley Y
GOSTEI 0
Devmedia

Devmedia

17/07/2009

Pedro,
os links passados não estão corretos.
Para facilitar os nossos cliente, agora, ao lado de cada arquivo upado, vc encontra o caminho ao lado do mesmo, por isso, copie o caminho dos arquivos e passe-os para o consultor, ok.
GOSTEI 0
Devmedia

Devmedia

17/07/2009

Pedro,
o consultor está esperando os links corretos para que ele possa baixar os arquivos e lhe ajudar com as respostas.
No aguardo.
GOSTEI 0
Pedro Conceição

Pedro Conceição

17/07/2009

Prezado Wesley,                 O link e:  http://video.devmedia.com.br/discovirtual/194223/ProjetoBackupRestore.zip                    Atenciosamente,                                Pedro
GOSTEI 0
Pedro Conceição

Pedro Conceição

17/07/2009

  Prezado Wesley,              Eu passei o link do projeto.              Agora o link do Banco de Dados é:   http://video.devmedia.com.br/discovirtual/194223/BancodeDadosdaSecretaria.zip               Atenciosamene,                             Pedro
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

17/07/2009

Olá meu caro, vamos ver teu projeto e logo retornaremos.

Att

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

17/07/2009

Olá meu amigo.
  Segue rotina desenvolvida de backup/Restore

//Backup
procedure TBackupRestoreFrm.BBackupClick(Sender: TObject);
var Mensagem,VData,VCAMINHO_ZIP:String;
begin
if ((BackupServerName.text='') or (EdDataBaseName.text='') or (destbackup.text='')) then
  begin
    MessageDlg('Preencha os campos requeridos!',mtInformation,[mbOK],0);
  end
else
  begin
    Mensagem := 'Erro durante o Backup';
    BBackup.Enabled:=false;
      with IbBackup do
        Begin
          ServerName:= BackupServerName.text;
          DataBaseName:= EDDatabasename.text;
          Params.Add('user_name=sysdba');
          Params.Add('password=masterkey');

          Active:=true;
          Try
           Verbose:= True;
           Options:= [];
           BackupFile.Clear;
           BackupFile.Add(destbackup.TEXT);//('ALMOX.GBK');
           memo.lines.Clear;

           try
             ServiceStart;
             While not eof do
               Begin
                 Memo.lines.add(GetNextLine);
               end;
           except
             Memo.lines.add('********************************');
             Memo.lines.add('Erro no Backup');
             Memo.lines.add('********************************');
             VData:= inttostr(DayOf(Date()))+ '_'+ inttostr(MonthOf(Date())) + '_'+inttostr(YearOf(Date()));
             memo.Lines.SaveToFile(ExtractFilePath(ParamStr(0))+'Backup'+VData+'.txt');
             Application.Terminate;
           end;

           VData:= inttostr(DayOf(Date()))+ '_'+ inttostr(MonthOf(Date())) + '_'+inttostr(YearOf(Date()));
           Memo.lines.add('********************************');
           Memo.lines.add('Backup bem sucedido');
           Memo.lines.add('Log de Execução: '+ExtractFilePath(ParamStr(0))+'Backup'+VData+'.txt');
           Memo.lines.add('********************************');

           VCAMINHO_ZIP:=Copy(destbackup.Text,0,length(destbackup.text)-4);
           VCAMINHO_ZIP:=VCAMINHO_ZIP+'_'+VData+'.ZIP';
           ZipMaster.ZipFileName:=VCAMINHO_ZIP;
           ZipMaster.FSpecArgs.Clear;
           ZipMaster.FSpecArgs.Add(destbackup.Text);
           Memo.lines.add('');
           Memo.lines.add('********************************');
           Memo.lines.add('Gerando Arquivo Zipado: '+VCAMINHO_ZIP);
           Memo.lines.add('********************************');
           ZipMaster.ADD;
           Memo.lines.add('');
           try
             memo.Lines.SaveToFile(ExtractFilePath(ParamStr(0))+'Backup'+VData+'.txt');
             Memo.lines.add('********************************');
             Memo.lines.add('Arquivo Zipado Gerado');
             Memo.lines.add('********************************');
           except
             Memo.lines.add('********************************');
             Memo.lines.add('Erro na criação do arquivo Zipado Gerado');
             Memo.lines.add('********************************');
           end;
          
           If not (UpperCase(ParamStr(1)) = '/AUTO') Then
              Application.messagebox('Backup Executado Com Sucesso !!!','Aviso',MB_ICONINFORMATION)
           else
           BEGIN
              Application.Terminate;
           END;
           Mensagem:= 'Realizado Com Sucesso ';
           BBackup.Enabled:=true;
            Finally
             begin
            
             end;
            end;
       end;
  end;
end;

//Restore

procedure TBackupRestoreFrm.BRestoreClick(Sender: TObject);
var Mensagem:String;
begin
if ((BackupServerName.text='') or (EdDataBaseName.text='') or (destbackup.text='')) then
  begin
    MessageDlg('Preencha os campos requeridos!',mtInformation,[mbOK],0);
  end
else
  begin
    Mensagem := 'Erro durante o Restore';
    BBackup.Enabled:=false;
      with IBRestore do
        Begin
          ServerName:= BackupServerName.text;
          DataBaseName.Add(destbackup.TEXT);
          Params.Add('user_name=sysdba');
          Params.Add('password=masterkey');

          Active:=true;
          Try
           Verbose:= True;
           Options:= [NoShadow,NoValidityCheck,CreateNewDB];
           PageSize:=8192;
           BackupFile.Clear;
           BackupFile.Add(EDDatabasename.text);//('ALMOX.GBK');
           memo.lines.Clear;
           ServiceStart;
           While not eof do
             Begin
               Memo.lines.add(GetNextLine);
             end;


           Application.messagebox('Backup Executado Com Sucesso !!!','Aviso',MB_ICONINFORMATION);
           Mensagem:= 'Realizado Com Sucesso ';
           BBackup.Enabled:=true;
            Finally
             begin

              end;
            end;
       end;
  end;

end;

    Adpte o exemplo a sua necessidade.

Um abraço

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

17/07/2009

Olá meu amigo, Bom dia !
   consegui ver o exemplo? Adaptar ? Estamos a disposição.

Um abraço

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

17/07/2009

Olá meu amigo, boa noite!
  Fechamos o chamados, porém estamos a disposição

  Um abraço

Wesley Y
GOSTEI 0
Pedro Conceição

Pedro Conceição

17/07/2009

    Prezado Consultor,                       Minhas dúvidas foram sanadas.                        Obrigado.
GOSTEI 0
POSTAR