![]() |
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:
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:
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;
Code:
Die Datenbank-datei hat aber eine realsitische größe.
Database xxx shutdown
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 |
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:
Warum sicherst Du nicht mit gbak ? Das läßt sich auch prima aus dem Taskplaner von Windows starten.
gfix -online -user sysdba -pass <kennwort> <server>:<datenbank>
Gruß, Marcel |
Re: Firebird Datenbankbackup wieder herstellen
Zitat:
[EDIT] mit 1.0 Rest muß ich :P testen !! |
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?
|
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:
|
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!
|
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 :?:
|
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!
|
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
|
Re: Firebird Datenbankbackup wieder herstellen
Zitat:
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; |
Re: Firebird Datenbankbackup wieder herstellen
jauh, hansa, ich gebs ja zu, dummerweise hilft mir das gerade ganz wenig, aber ich bin weiter gekommen: Das Restore läuft garnicht komplett ab, sondern liefert einen Fehler und deshalb wird man auch die halbfertige Datenbankdatei nciht lesen können., Ich habe hier mal den Log:
Code:
Die Tabelle "BELEG" ist dummerweise die aller wichtigste!IBE: Starting restore. Current time: 14:09:42 gbak: opened file D:\kirche III\Output\backup 2004\38026,8952829861.bak gbak: transportable backup -- data in XDR format gbak: backup file is compressed gbak: Reducing the database page size from 4096 bytes to 1024 bytes gbak: created database C:\restore3.gdb, page_size 1024 bytes gbak: started transaction gbak: restoring domain RDB$11 gbak: restoring domain RDB$12 gbak: restoring domain RDB$3 gbak: restoring domain RDB$4 gbak: restoring domain RDB$5 gbak: restoring domain RDB$14 gbak: restoring domain RDB$15 gbak: restoring domain RDB$16 gbak: restoring domain RDB$8 gbak: restoring domain RDB$9 gbak: restoring domain RDB$10 gbak: restoring domain RDB$17 gbak: restoring domain RDB$18 gbak: restoring domain RDB$19 gbak: restoring domain RDB$20 gbak: restoring domain RDB$21 gbak: restoring domain RDB$22 gbak: restoring domain RDB$23 gbak: restoring domain RDB$24 gbak: restoring domain RDB$25 gbak: restoring domain RDB$26 gbak: restoring domain RDB$27 gbak: restoring domain RDB$28 gbak: restoring domain RDB$29 gbak: restoring domain RDB$30 gbak: restoring domain RDB$31 gbak: restoring domain RDB$32 gbak: restoring domain RDB$33 gbak: restoring domain RDB$34 gbak: restoring domain RDB$35 gbak: restoring domain RDB$36 gbak: restoring domain RDB$37 gbak: restoring domain RDB$38 gbak: restoring domain RDB$39 gbak: restoring domain RDB$40 gbak: restoring domain RDB$41 gbak: restoring domain RDB$42 gbak: restoring domain RDB$43 gbak: restoring domain RDB$44 gbak: restoring domain RDB$45 gbak: restoring domain RDB$47 gbak: restoring domain RDB$49 gbak: restoring domain RDB$50 gbak: restoring domain RDB$51 gbak: restoring domain RDB$52 gbak: restoring domain RDB$53 gbak: restoring domain RDB$54 gbak: restoring domain RDB$55 gbak: restoring domain RDB$56 gbak: restoring domain RDB$57 gbak: restoring domain RDB$58 gbak: restoring domain RDB$59 gbak: restoring domain RDB$66 gbak: restoring domain RDB$67 gbak: restoring domain RDB$68 gbak: restoring domain RDB$69 gbak: restoring domain RDB$70 gbak: restoring domain RDB$71 gbak: restoring domain RDB$72 gbak: restoring table VORLAGEN gbak: restoring column VORLAGENID gbak: restoring column VORLAGENTEXT gbak: restoring column VORLAGENTITEL gbak: committing metadata for table VORLAGEN gbak: error committing metadata for table VORLAGEN gbak: restoring table SACHBUCH gbak: restoring column SBNR gbak: restoring column SBID gbak: restoring column SBCOMMENT gbak: committing metadata for table SACHBUCH gbak: error committing metadata for table SACHBUCH gbak: restoring table GLIEDERUNG gbak: restoring column GLID gbak: restoring column SBIDT gbak: restoring column SBID gbak: restoring column GLNR gbak: restoring column GLCOMMENT gbak: restoring column GLNAME gbak: committing metadata for table GLIEDERUNG gbak: error committing metadata for table GLIEDERUNG gbak: restoring table IBE$REPORTS gbak: restoring column IBE$REPORT_SOURCE gbak: restoring column IBE$REPORT_RIGHTS gbak: restoring column IBE$REPORT_ID gbak: restoring column IBE$REPORT_PARENT_ID gbak: restoring column IBE$REPORT_NAME gbak: restoring column IBE$REPORT_IS_REPORT gbak: committing metadata for table IBE$REPORTS gbak: error committing metadata for table IBE$REPORTS gbak: restoring table FUNKTION gbak: restoring column FNID gbak: restoring column FNNR gbak: restoring column GLID gbak: restoring column FNCOMMENT gbak: restoring column FNNAME gbak: committing metadata for table FUNKTION gbak: error committing metadata for table FUNKTION gbak: restoring table CONFIG gbak: restoring column KEYNAME gbak: restoring column KEYTITEL gbak: restoring column KEYVALUE gbak: restoring column KEYDESCRIPTION gbak: committing metadata for table CONFIG gbak: error committing metadata for table CONFIG gbak: restoring table KONTO gbak: restoring column KNID gbak: restoring column FNID gbak: restoring column KONTOEINLAST gbak: restoring column KONTOAUSLAST gbak: restoring column KONTOPLANUNGLAST gbak: restoring column KONTOEIN gbak: restoring column KONTOAUS gbak: restoring column KONTOPLANUNG gbak: restoring column KNNR gbak: restoring column KONTOCOMMENT gbak: committing metadata for table KONTO gbak: error committing metadata for table KONTO gbak: restoring table KONTONAME gbak: restoring column ID gbak: restoring column KNNR gbak: restoring column KNNAME gbak: committing metadata for table KONTONAME gbak: error committing metadata for table KONTONAME gbak: restoring table BELEG gbak: restoring column BELEGID gbak: restoring column KNID gbak: restoring column BELEGDATUM gbak: restoring column BELEGBETRAG gbak: restoring column BELEGAUSGESTELLTAM gbak: restoring column BELEGTYP gbak: restoring column BELEGCHECKED gbak: restoring column TEXT1 gbak: restoring column TEXT2 gbak: restoring column BELEGSPENDENNUMMER gbak: restoring column BELEGSACHLICHERICHTIGKEIT gbak: restoring column BELEGRECHNERISCHERICHTIGKEIT gbak: committing metadata for table BELEG gbak: error committing metadata for table BELEG gbak: restoring function ISEINAHME gbak: restoring argument for function ISEINAHME gbak: restoring argument for function ISEINAHME gbak: restoring function EZPLAN gbak: restoring argument for function EZPLAN gbak: restoring argument for function EZPLAN gbak: restoring generator GEN_SACHBUCH_ID value: 3 gbak: restoring generator GEN_GLIEDERUNG_ID value: 29 gbak: restoring generator GEN_FUNKTION_ID value: 40 gbak: restoring generator GEN_KONTO_ID value: 123 gbak: restoring generator GEN_KONTONAME_ID value: 395 gbak: restoring generator GEN_BELEG_ID value: 818 gbak: restoring generator GEN_VORLAGEN_ID value: 2 gbak: restoring stored procedure SP_GEN_SACHBUCH_ID gbak: restoring parameter ID for stored procedure gbak: restoring stored procedure SP_GEN_GLIEDERUNG_ID gbak: restoring parameter ID for stored procedure gbak: restoring stored procedure SP_GEN_FUNKTION_ID gbak: restoring parameter ID for stored procedure gbak: restoring stored procedure SP_GEN_KONTO_ID gbak: restoring parameter ID for stored procedure gbak: restoring stored procedure SP_GEN_KONTONAME_ID gbak: restoring parameter ID for stored procedure gbak: restoring stored procedure SP_GEN_BELEG_ID gbak: restoring parameter ID for stored procedure gbak: restoring stored procedure SP_GEN_VORLAGEN_ID gbak: restoring parameter ID for stored procedure gbak: committing metadata gbak: restoring index RDB$PRIMARY8 gbak: restoring index RDB$FOREIGN21 gbak: restoring data for table BELEG IBE: Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements. connection lost to database. IBE: Restore completed. Current time: 14:09:43. Elapsed time: 00:00:00 |
Re: Firebird Datenbankbackup wieder herstellen
Moin Hansa,
Zitat:
|
Re: Firebird Datenbankbackup wieder herstellen
Wenn ich das richtig sehe, wird in dem Log angezeigt, daß keine einzige der Tabellen comitted wird. Nicht nur die Beleg !
@Jens: wenn keine Firebird-spezifischen Dinge benutzt werden, sollte IBX schon gehen, aber Borland selber sagt, FB würde in keinster Weise unterstützt. Das galt schon für 1.0. Insofern ist höchste Vorsicht geboten ! Solche Fehlersuchen wie jetzt hier, sind nämlich nicht unbedingt notwendig. Wenn TheOmega jetzt bei Borland anruft, dann fragen die nach Delphi Version und DB-Version. Sagt er da "Firebird" so sind die schnell fertig. :shock: Aber was ist jetzt mit dem Borland Interbase überhaupt ? |
Re: Firebird Datenbankbackup wieder herstellen
Zitat:
hat Borland nicht vor kutzem eine neue version IB 7.1 herausgebracht ?!? |
Re: Firebird Datenbankbackup wieder herstellen
also: ich habe es aus irgende ineem Grund mit einem einen Tag älteren Backup (das mit theoretisch auch reichen würde) probiert und bekomme zumindest alle Datenbank inkl. der Belege wiederhergestellt, dummerweise lang nicht alle Zeilen, ich fehlen sicher die Hälfte wenn nicht mehr. Bei noch älteren Backups habe ich mehr Eträge drin als bei den neueren, was sich auch in der Dateigröße zeigt, vermutlich ist da irgendwas beim Backup schiefgelaufen! Kacke! Und es scheint keine Rolle zu spielen ob ich jetzt IB oder FB nehme!
|
Re: Firebird Datenbankbackup wieder herstellen
Hallo theomega,
hasst Du irgendwo Sonderzeichen verwendet? Siehe mein erstes Posting |
Re: Firebird Datenbankbackup wieder herstellen
in den Feldinhalten ganz sicher, in den Feldnamen sicher nicht, darauf habe ich geachtet!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz