Einzelnen Beitrag anzeigen

Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#1

Firebird - DB Backup

  Alt 24. Sep 2012, 10:07
Datenbank: Firebird • Version: 2.5.1 • Zugriff über: UniDAC
Firebird Backup mit Hilfe einer .bat Datei.

Code:
REM http://www.destructor.de/firebird/gbak.htm
REM ------------------------------------------
REM evtl. bestehende LOG Datei löschen
del "C:\ProgramData\Anwendungsverzeichnis\backup\database.log"
REM Backup starten
"C:\ProgramData\Anwendungsverzeichnis\backup\gbak.exe" -v -t -user sysdba -password masterkey -y "C:\ProgramData\Anwendungsverzeichnis\backup\database.log" "K:\Ordnername\Programmbezeichnung\Win32\Debug\Database.fdb" "C:\ProgramData\Anwendungsverzeichnis\backup\BACKUP.fbk"
REM DOS Fenster nicht schließen
PAUSE
Aus dem Programm heraus die Datenbank vom Server als Backup sichern, sowie die lokale Datenbank aus dem Programm EXE Verzeichnis.
Delphi-Quellcode:
var
  BackupDirectory, Quelle, Ziel, Parameter : String;
begin
  BackupDirectory := 'C:\ProgramData\Anwendungsverzeichnis\backup\';

  with SaveDialog do
  begin
    FileName := 'backup';
    Filter := 'database (*.fbk)|*.fbk';
    DefaultExt := '*.fbk';
    InitialDir := BackupDirectory;
  end;

  Ziel := '"' + SaveDialog.FileName + '"';

  if Datenmodul.UniConnection.Server <> '// bei der lokalen DB ist der Server Eintrag leer
   then Quelle := '"' + Datenmodul.UniConnection.Server + ':' + Datenmodul.UniConnection.Database + '"'
    else Quelle := '"' + ExtractFilePath(ParamStr(0)) + 'Database.fdb' + '"';

  Parameter := '-v -t -user sysdba -password masterkey '+ Quelle +' '+ Ziel;

  ShellExecute(0,nil,PChar(BackupDirectory + 'gbak.exe'),PChar(Parameter),nil,SW_SHOW);
end;
Das funktioniert 'jetzt'. Erst wollte ich eine andere Frage stellen.
Im Verzeichnis ...\ProgramData\Anwendungsverzeichnis\backup\ Ordner befindet sich die gbak.exe, zusätzlich hatte ich dort die 'fbclient.dll' mit drinnen damit hat der lokale Backup nicht funktioniert, jetzt habe ich die 'gds32.dll' reinkopiert und alles klappt wunderbar.

Meine Frage jetzt: Gibt es eine Übersicht wann die 'fbclient.dll' & wann die 'gds32.dll' genommen werden sollte oder sollte ich generell einfach beide Dateien in den Ordner packen?

PS: Zusätzlich läuft local auch noch ein Firebird Server als Dienst.
  Mit Zitat antworten Zitat