Backup e restauração noIB/FB
12/08/2003
0
Alguns colegas postaram o pedido da rotina que eu uso para o IB/FB.
Devo deixar claro que a rotina abaixo foi desenhada para meu uso e algumas coisas devem ser adequadas ao uso de cada um.
Estou disponibilizando aqui, pois um erro na página não me permitiu responder as mensagens particulares. Espero qiue possa servir de norte para os colegas.
BACKUP
with IBBackupService1 do
begin
ServerName := ´Local Server´;
LoginPrompt := False;
Params.Add(´user_name=SYSDBA´);//se segurança for imporatnte, trate essas linhas
Params.Add(´password=masterkey´);
Active := True;
try
Screen.Cursor:=-11;
Backupfile.Clear;
MEMO2.Clear;
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Memo2.Lines.Add(´ Iniciando Cópia de Segurança...´);
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
DatabaseName := DB1.databasename;//db1 é um TDatabase
BackupFile.Add(´C:\Arquivo.gbk´);//defina aqui onde deve ser feito o backup...
ServiceStart;
While not Eof do Begin
Memo2.Lines.Add(GetNextLine);
Application.ProcessMessages;
end;
finally
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Memo2.Lines.Add(´ CÓPIA DE SEGURANÇA EXECUTADA COM SUCESSO!´);
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Active := False;
Screen.Cursor:=0;
end; end; end;
RESTAURAÇÃO
begin
DM1.DB1.Connected:=false;
DM1.DB1.Close;
with IBRestoreService1 do Begin
ServerName := ´Local Server´;
Params.Add(´user_name=SYSDBA´);
Params.Add(´password=masterkey´);
Active := True;
try
Screen.Cursor:=-11;
Verbose := True;
Options := [Replace, UseAllSpace];
PageBuffers := 3000;
PageSize := 4096;
DatabaseName.Add(DB1.databasename);//db1 é um TDatabase
Backupfile.Clear;
MEMO2.Clear;
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Memo2.Lines.Add(´ Iniciando Restauração da BD...´);
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
BackupFile.Add(´C:\Arquivo.gbk´);
ServiceStart;
While not Eof do BEGIN
Memo2.Lines.Add(GetNextLine);
Application.ProcessMessages;
end;
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Memo2.Lines.Add(´ Restauração Concuída...´);
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
finally
Screen.Cursor:=0;
Active := False;
end; end; end;
Devo deixar claro que a rotina abaixo foi desenhada para meu uso e algumas coisas devem ser adequadas ao uso de cada um.
Estou disponibilizando aqui, pois um erro na página não me permitiu responder as mensagens particulares. Espero qiue possa servir de norte para os colegas.
BACKUP
with IBBackupService1 do
begin
ServerName := ´Local Server´;
LoginPrompt := False;
Params.Add(´user_name=SYSDBA´);//se segurança for imporatnte, trate essas linhas
Params.Add(´password=masterkey´);
Active := True;
try
Screen.Cursor:=-11;
Backupfile.Clear;
MEMO2.Clear;
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Memo2.Lines.Add(´ Iniciando Cópia de Segurança...´);
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
DatabaseName := DB1.databasename;//db1 é um TDatabase
BackupFile.Add(´C:\Arquivo.gbk´);//defina aqui onde deve ser feito o backup...
ServiceStart;
While not Eof do Begin
Memo2.Lines.Add(GetNextLine);
Application.ProcessMessages;
end;
finally
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Memo2.Lines.Add(´ CÓPIA DE SEGURANÇA EXECUTADA COM SUCESSO!´);
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Active := False;
Screen.Cursor:=0;
end; end; end;
RESTAURAÇÃO
begin
DM1.DB1.Connected:=false;
DM1.DB1.Close;
with IBRestoreService1 do Begin
ServerName := ´Local Server´;
Params.Add(´user_name=SYSDBA´);
Params.Add(´password=masterkey´);
Active := True;
try
Screen.Cursor:=-11;
Verbose := True;
Options := [Replace, UseAllSpace];
PageBuffers := 3000;
PageSize := 4096;
DatabaseName.Add(DB1.databasename);//db1 é um TDatabase
Backupfile.Clear;
MEMO2.Clear;
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Memo2.Lines.Add(´ Iniciando Restauração da BD...´);
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
BackupFile.Add(´C:\Arquivo.gbk´);
ServiceStart;
While not Eof do BEGIN
Memo2.Lines.Add(GetNextLine);
Application.ProcessMessages;
end;
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
Memo2.Lines.Add(´ Restauração Concuída...´);
Memo2.Lines.Add(´/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\´);
finally
Screen.Cursor:=0;
Active := False;
end; end; end;
Koplin
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)