Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird Datenbankbackup wieder herstellen (https://www.delphipraxis.net/23856-firebird-datenbankbackup-wieder-herstellen.html)

theomega 10. Jun 2004 21:40


Firebird Datenbankbackup wieder herstellen
 
Hallo Leute,
gerade versuche ich verzweifelt ein Datenbank-Backup wiederherzustellen. Gebackupt habe ich über den Komponenten TIBBackupService (Standart von Delphi 7 Enterprise) via diesem Code:
Delphi-Quellcode:
bkresmain := TIBRestoreService.Create(nil);

bkmain.DatabaseName := ini.ReadString('database','databasename','');
bkmain.Params.Text := 'password='+ini.ReadString('database','password','')+#10#13+
'user_name='+ini.ReadString('database','user_name','');
bkmain.BackupFile.Add(ini.ReadString('backup','path','')+'\'+floattostr(now)+'.bak');
bkmain.LoginPrompt := false;


bkmain.Active := true;
bkmain.ServiceStart;
bkmain.Active := false;
das hat auch immer funktioniert und ich will jetzt genau eine von den Backups wiederherstellen. Also habe ich mit dem IBExpert (extra-software) das Backup wiederhergestellt. Es ensteht dann auch wieder eine Datenbank-Datei nur kann ich diese nicht lesen, weil Firebird/IBExpert den Fehler meldet:

Code:
Database xxx shutdown
Die Datenbank-datei hat aber eine realsitische größe.

Hat jemand eine Idee wie ich doch wieder an meine Dateien kommen könnte. Eine Fehlerursache könnte sein: evtl ist TIBBackupService nicht mit Firebird 1.5 kompatible.

WEr hat mir eine Idee?

Danke und Grüße
TO

Marcel Gascoyne 10. Jun 2004 22:11

Re: Firebird Datenbankbackup wieder herstellen
 
Da ist wohl die Datenbank offline geschaltet. Könnte an Deinem Tool liegen. Mit dem Kommandozeilentool gfix kannst Du die Datenbank wieder online schalten:

Code:
gfix -online -user sysdba -pass <kennwort> <server>:<datenbank>
Warum sicherst Du nicht mit gbak ? Das läßt sich auch prima aus dem Taskplaner von Windows starten.

Gruß,
Marcel

Hansa 10. Jun 2004 23:03

Re: Firebird Datenbankbackup wieder herstellen
 
Zitat:

Zitat von theomega
evtl. ist TIBBackupService nicht mit Firebird 1.5 kompatible.

So siehts fast aus. Und das wurde vor 2 Jahren auch so angekündigt. IBX unterstützt aus kommerziellen Gründen kein Firebird. Ich könnte Dir den Source für ein Backup mit FIBplus schicken. Das geht. :mrgreen:

[EDIT] mit 1.0 Rest muß ich :P testen !!

theomega 11. Jun 2004 12:10

Re: Firebird Datenbankbackup wieder herstellen
 
hm, bringt mir jetzt dummerweise wenig, weil ich an das Backup dranmuß! Würde es was bringen einen Interbase-Server drauszumachen und dann in eine IB-datenbank wiederherzustellen?

Hansa 11. Jun 2004 12:39

Re: Firebird Datenbankbackup wieder herstellen
 
Das wäre wohl die logische Konsequenz. Geht das Backup dann, so war es tatsächlich eine Inkompatibilität. Falls es immer noch nicht geht, so liegt es an Deinem Programm. :mrgreen:

theomega 11. Jun 2004 12:41

Re: Firebird Datenbankbackup wieder herstellen
 
oki, dafür kann ich doch die Interbase-Version von der Delphi 7 CD nehmen oder? Habe damit noch nie gearbeitet!

Hansa 11. Jun 2004 12:46

Re: Firebird Datenbankbackup wieder herstellen
 
Klar geht die, aber wieso muß das überhaupt mit einem Delphi-Prog restored werden ?? Warum verwendest du nicht erst mal IBexpert, um zu sehen was Sache ist :?:

theomega 11. Jun 2004 12:49

Re: Firebird Datenbankbackup wieder herstellen
 
mach ich doch auch, oder kommt das nicht klar oben raus ? *G* Der IBExpert resort es auch richtig nur bekomm ich die datenbank nacher nichtmehr geöffnet!

Jens Schumann 11. Jun 2004 12:55

Re: Firebird Datenbankbackup wieder herstellen
 
Hallo theomega,
ich verwende ebenfalls der Firebird Server unter WinXP SP1.^
Ich habe die Version 1.5.0.4201 Firebird 1.5 Release Candidate.

Mit Delphi 7 SP 1.1 habe ich gereade ein kleines Testprogramm mit den
Komponenten TIBBackupService und TIBRestoreService gebastelt.
Ich verwende die original D7 IBX-Komponenten (d.h. ohne Update).
Die Datenbank habe ich ebenfalls unter dem Firebird erstellt.
Mit der IBOConsole von L Mengoni Version 1.1.9.6

Es funktioniert einwandfrei. Kann es sein, dass Dein Problem an einer anderen Stelle liegt?

Im Buch "Interbase Datenbankentwicklung mit Delphi" von A. Kosch habe folgendes gelesen:
Ein erfolgreiches BackUp schleißt ein erfolgreiches Restore NICHT mit ein.
Das trifft zum Beispiel zu, wenn man irgendwelche Sonderzeichen (auch deutsche Umlaute) in
Domains, Trigger oder Stored procedures verwendet.
Folgendes Beispiel läßt ein erfolgreiches BackUp zu. Ein Restore schlägt jedoch fehl

SQL-Code:
CREATE DOMAIN UMLAUT AS CHAR(1) DEFAUTL 'ä' NOT NULL COLLATE DE_DE

Hansa 11. Jun 2004 13:03

Re: Firebird Datenbankbackup wieder herstellen
 
Zitat:

Zitat von theomega
...Gebackupt habe ich über den Komponenten TIBBackupService (Standart von Delphi 7 Enterprise) via diesem Code:

... Eine Fehlerursache könnte sein: evtl ist TIBBackupService nicht mit Firebird 1.5 kompatible.

Mann o Mann, :mrgreen:

TIBBackupService ist IBX. Also die DB-Zugriffskomponenten von Borland. Die werden einen Teufel tun, ihre Konkurrenz zu stärken. 8) Mit FB 1.0 gabs damit schon Ärger. Mit FB 1.5 traue ich mich damit an eine DB nicht mehr dran. Ich kann nur sagen, daß es mit FIBplus als Ersatz für IBX immer funktioniert hat. Und zwar so :

Delphi-Quellcode:
procedure TfrmBackup.Button1Click(Sender: TObject);
begin
  CloseB.Enabled := False;
  StatusBox.Lines.Clear;
  with pFIBBackupService1 do begin
    ServerName := ServerE.Text;
    LoginPrompt := False;
    Params.Add('user_name='+UserE.Text);
    Params.Add('password='+PasswordE.Text);
    Active := True;
    try
      Verbose := True;
      Options := [NonTransportable, IgnoreLimbo];
      DatabaseName := DBNameE.Text;
      BackupFile.Clear;
      BackupFile.Add(BackupE.Text);
      ServiceStart;
    finally
      Active := False;
      ShowMessage ('lokale Datensicherung beendet !'#10#13'Die Daten sollten aber noch auf ein externes Medium kopiert werden!');
    end;
  end;
  CloseB.Enabled := True;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz