AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Backup von Firebird Embedded
Thema durchsuchen
Ansicht
Themen-Optionen

Backup von Firebird Embedded

Ein Thema von Opa Knack · begonnen am 11. Aug 2010 · letzter Beitrag vom 12. Aug 2010
Antwort Antwort
Seite 1 von 2  1 2      
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#1

Backup von Firebird Embedded

  Alt 11. Aug 2010, 14:31
Datenbank: Firebird • Version: 1.5 Embedded • Zugriff über: Zeos
Hallo,

ich verwende Firebird in der Embedded-Version und greife mit Zeos 6.5 darauf zu. Um die Datenbank sichern zu können, verwende ich folgendes:

[DP]
dbverbindung.Disconnect;

ShellExecute(0,
'open',
'c:\gbak.exe',
'-v -t -user SYSBDA -password masterkey c:\db.fdb c:\sicherung.fbk',
nil,
SW_SHOW);
[/DP]

Wenn ich den Code direkt auf der DOS-Ebene eingebe, funktioniert alles wie gewünscht, vom Programm aus leider nicht. Es öffnet sich kurz ein DOS-Fenster, verschwindet nach einem Sekundenbruchteil, und das war's.

Mein Gedankengang war nun, dass der Disconnect zur DB vielleicht ein wenig Zeit braucht. Also habe ich eine kleine Pause eingebaut, was mich aber auch nicht weitergebracht hat.

Wie macht ihr das? Hatte evtl. jemand einen Tipp, vielleicht auch unabhängig von gbak.exe (wobei ich in den letzten Stunden auf meiner Suche nach passenden Threads gelesen habe, dass dies wohl die praktischste Variante wäre)?

Danke und Gruß
Opa
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Backup von Firebird Embedded

  Alt 11. Aug 2010, 14:46
Hi,

hast Du schon mal ein Application.ProcessMessages nach dem Disconnect gemacht? Und bist Du dir absolut sicher, dass sonst keine Verbindung zur DB offen ist?

[Update]
ich verwende IBO und mache da im Grunde das selbe, bei mir funktioniert das aber.... Ach ja: Die Dateinamen passen? Schon mal daran gedacht mit -Y Logfile.txt ein Logfile mit zu schreiben? Vielleicht kommen da etwas mehr INfos...

Geändert von Lemmy (11. Aug 2010 um 14:52 Uhr)
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#3

AW: Backup von Firebird Embedded

  Alt 11. Aug 2010, 14:52
Beim embedded brauchst du gbak nicht unbedingt, kopiere doch einfach die fdb-Datei?

Zum überprüfen, ob eine Datei in Verwendung ist, setze ich folgenden Code ein:

Delphi-Quellcode:
// Is a file currently in usage?
function IsFileInUse(fName : string) : boolean;
var
    HFileRes : HFILE;
begin
    Result := false;
    if not FileExists(fName) then exit;
    HFileRes :=
      CreateFile(pchar(fName),
                 GENERIC_READ or GENERIC_WRITE,
                 0, nil, OPEN_EXISTING,
                 FILE_ATTRIBUTE_NORMAL,
                 0) ;
    Result := (HFileRes = INVALID_HANDLE_VALUE) ;
    if (not Result) then CloseHandle(HFileRes)
end;
das kannst du ja ggf. in einer Schleife / Timer etc. prüfen, sobald die Funktion false ausgibt, kannst du kopieren.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Backup von Firebird Embedded

  Alt 11. Aug 2010, 14:56
AFAIK komprimiert gbak aber auch. Muss es denn unbedingt ZEOS sein? Einen Blick wert ist IMO das kostenlose UIB, da gibt es für Backup/Restore auch passende Komponenten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#5

AW: Backup von Firebird Embedded

  Alt 11. Aug 2010, 15:02
Hallo,

Danke euch dreien.

@Lemmy:
Application.ProcessMessages habe ich schon versucht (leider auch ohne Erfolg). Kann die Embedded nicht nur eine einzelne Verbindung haben?

@blackfin:
Ich habe gelesen, dass das reine Kopieren zu Problemen führen könnte. Dazu kommt, dass es theoretisch vorkommen könnte, dass die Embedded irgendwann mal durch den Server ersetzt wird. Dann würde ich natürlich gerne bereits eine praktikable und "aufwärtskompatible" Backuplösung haben.

@DeddyH
UIB habe ich mir auch schon angeschaut. Ich habe mich letztlich für ZEOS entschieden, da ich damit die Möglichkeit habe, relativ unkompliziert auch auf MySQL zuzugreifen (was zwar momentan noch kein Thema ist, aber es könnte sein, dass diese Anforderung noch kommt)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: Backup von Firebird Embedded

  Alt 11. Aug 2010, 15:17
Zitat von OpaKnack:
Kann die Embedded nicht nur eine einzelne Verbindung haben?
Momentan ja, das soll sich aber wohl dem Hörensagen nach in der 2.5 ändern. Von daher ist der Hinweis nicht unberechtigt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Backup von Firebird Embedded

  Alt 11. Aug 2010, 15:29
Ja das ändet sich, da die embedded seit 2.5 auf der neuen SuperClassic-Architektur anstatt auf der SuperServer-Architektur basiert
Markus Kinzler
  Mit Zitat antworten Zitat
Opa Knack

Registriert seit: 28. Dez 2004
Ort: Köln
166 Beiträge
 
#8

AW: Backup von Firebird Embedded

  Alt 12. Aug 2010, 11:28
Hallo,

da die 2.5 erst als RC vorgestellt wurde und ich somit noch die 1.5 verwende, habe ich natürlich nur eine Verbindung offen, die ich vom Programm aus wie oben beschrieben trenne.

Hat noch jemand Ideen?

Danke und Gruß
Opa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

AW: Backup von Firebird Embedded

  Alt 12. Aug 2010, 11:34
Um nochmal auf den Ausgangspost zurückzukommen: funktioniert der Befehl auch, wenn Du ihn nicht über die Kommandozeile, sondern über "Start - Ausführen" (WIN - R) absetzt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Backup von Firebird Embedded

  Alt 12. Aug 2010, 11:41
Hallo,

vielleicht könntest Du zu Testzwecken den Befehl in eine .bat-Datei schreiben, gefolgt von dem Befehl "pause", der verhindert, dass sich das Fenster sofort wieder schließt und dann in Deinem Programm die Batchdatei aufrufen.

Dann siehst Du immerhin die Ausgabe von GBAK.


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:25 Uhr.
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