Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Firebird Backup/Restore mit FIBPlus

  Alt 23. Jul 2009, 21:10
Hallo Freiwilderer,

tut mir leid das ich jetzt erst jetzt Zeit gefunden habe Dir zu antworten, bin zur Zeit dabei mich in C# einzuarbeiten.

Das die Datei kleiner wird ist ja durchaus möglich, weil die Datenbank ja aufgeräumt wird und die Datensätze die gelöscht sind auch tatsächlich gelöscht werden. Ob die ganze Aktion funktioniert hat, kann man ja sehen wenn man nach dem BackUp ein Restore durchführt.

Ich habe mir ein kleines Programm geschrieben und mit den beiden Befehlen etwas zu spielen, was allerdings noch nicht eingearbeitet worden ist, ist der automatische Test ob das Backup auf in alle Einzelheiten auch richtig durchgeführt worden ist.

So sieht der Quelltext für das Backup aus:

Delphi-Quellcode:
procedure TForm3.btAktionAusfuehrenClick(Sender: TObject);
begin
  with pFIBBackupService1 do
  begin
    BackupFile.Clear;
    Params.Clear;
    ServerName:= 'localhost';
    LoginPrompt:= FALSE;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active:= TRUE;
    try
      Verbose := True;
      Options:= [IgnoreLimbo,NonTransportable];
      DatabaseName:= FFBDBOriginal;
      BackupFile.Add(FFBDBCopy);
      ServiceStart;
      while not EOF do
      begin
        MemoAktionenAnzeigen.Lines.Add(GETNextLine);
      end;
    finally
      Active:= FALSE;
    end;
  end;
end;
Und so für das Restore:

Delphi-Quellcode:
procedure TForm3.Button3Click(Sender: TObject);
begin
  with pFIBRestoreService1 do
  begin
    ServerName:= 'localhost';
    LoginPrompt:= FALSE;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active:= TRUE;
    try
      Verbose := True;
      Options := [Replace, UseAllSpace];
      PageBuffers := 3000;
      PageSize := 4096;
      BackupFile.Add(FFBDBCopy);
      DatabaseName.Add(FFBDBOriginal);
      ServiceStart;
      while not EOF do
      begin
        MemoAktionenAnzeigen.Lines.Add(GETNextLine);
      end;
    finally
      Active := False;
    end;
  end;
end;
Soweit funktioniert das auch, aber bitte nicht mit der original Datenbank durchführen sonder eine Test Datenbank anlegen und selber testen. In der Hilfe von FIBPlus ist auch einiges beschrieben, man muss leider sich das nur mühselig zusammensuchen.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat