Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datenbank Backup mit Firebird (https://www.delphipraxis.net/152403-datenbank-backup-mit-firebird.html)

Jens Hartmann 21. Jun 2010 16:37

Datenbank: Firebird • Version: 2.1 • Zugriff über: ZEOS

Datenbank Backup mit Firebird
 
Hallo zusammen,

ich habe mal eine Grundlegende Frage zum Datenbank Backup einer Firebird DB. Momentan löse ich das über einen Aufruf einer Batch Datei, in der ich GBAK.exe bedienen. Dies hat allerdings den Nachteil, das ich das Datenbankkennwort in der Batch Datei jedem frei zugänglich zur Verfügung stelle.

Hier habe ich verschieden Threads über das Backup gefunden, die allerdings mir noch keinen vernünpftige weg aufgezeigt haben.

Es gibt wohl von Interbase eine Komponente zum Backup und Restore, allerdings da ich ZEOS einsetzen, wäre es natürlich schön dabei zu bleiben.

Ich habe auch schon überlegt, ob ich die Batch Datei zyklisch erstellen lasse, diese dann ausführe und anschließend wieder lösche. Allerdings scheint mir das auch irgendwie unlogisch. Vieleicht könnt Ihr mir ja einen Hinweis oder eine sinnvolle Möglichkeit nennen, die Datenbank täglich über Delphi sichern zu lassen.

Gruß Jens

mjustin 21. Jun 2010 17:14

AW: Datenbank Backup mit Firebird
 
Idee: man könnte für das Backup einen anderen Benutzer (als Owner der Datenbank) in Firebird anlegen, der keine SQL Lese- etc. Rechte hat...

Jens Hartmann 21. Jun 2010 17:32

AW: Datenbank Backup mit Firebird
 
Wäre eine Möglichkeit,

wobei ich natürlich von dem Thema der Batchdatei nicht wegkomme. Gibt es nicht einen Möglichkeit z.B. über ShellExecute verschieden Daten an die cmd Eingabeaufforderung zu senden. So das man z.B. Passwort und Benutzer direkt aus Delphi senden würde.

Also irgendwie so in dieser Richtung...
Delphi-Quellcode:
procedure Tform1.btnSaveTestClick(Sender: TObject);
var
  cmdString : String;
begin
  cmdString := '/c dir C:\Programme\Firebird\Firebird_2_1\bin\gbak.exe '+
  '-b -v -user SYSDBA -pas masterkey localhost:"C:\ProgramData\hu\db\MeineDB.fdb" '+
  '"C:\ProgramData\hu\db\MeineDB.bak"';
  ShellExecute(Handle,'open','cmd.exe',PAnsiChar(cmdString),nil,SW_SHOW);
end;
Gruß Jens

gsh 21. Jun 2010 17:56

AW: Datenbank Backup mit Firebird
 
Zitat:

Zitat von Jens Hartmann (Beitrag 1030708)
Gibt es nicht einen Möglichkeit z.B. über ShellExecute verschieden Daten an die cmd Eingabeaufforderung zu senden.

Bei Google suchenParameter Batch

Warum rufst du die gbak.exe nicht selber auf und umgehst somit die CMD? :gruebel:

haentschman 21. Jun 2010 18:01

AW: Datenbank Backup mit Firebird
 
Hallo... :hi:

die UIB Komponenten haben Backup und Restore dabei. Das läßt sich leicht ins Programm integrieren. Das Batch Thema wäre dann vom Tisch.

Jens Hartmann 21. Jun 2010 18:13

AW: Datenbank Backup mit Firebird
 
Das weiß ich,

allerdings wollte ich das eigenlich vermeiden, da ich damit mit einer zusätzlichen Komponente(außer ZEOS9 auf die DB zugreife. Ich weiß nicht ob das so gut kommt.

Gruß Jens

haentschman 21. Jun 2010 18:14

AW: Datenbank Backup mit Firebird
 
was sollte schief gehen ? Probieren geht über studieren...:zwinker:

Chemiker 21. Jun 2010 20:36

AW: Datenbank Backup mit Firebird
 
Hallo Jens Hartmann,

hast Du IBExpert?

Bis bald Chemiker

Jens Hartmann 21. Jun 2010 21:32

AW: Datenbank Backup mit Firebird
 
Hallo Chemiker,

ja ich habe IBExpert. Warum?

Chemiker 21. Jun 2010 22:15

AW: Datenbank Backup mit Firebird
 
Hallo Jens Hartmann,

mit dem HK-Control-Center kannst Du auch Backups erstellen.

Bis bald Chemiker

Jens Hartmann 22. Jun 2010 05:20

AW: Datenbank Backup mit Firebird
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, das ist schon klar. Ich würde das ganze aber gerne als Modul in meine Programm implementieren um dort dieses Backup einrichten zu können. So in etwa wie in dem unten angehangen Bild...

Trotzdem Danke und Gruß

Jens

mkinzler 22. Jun 2010 05:29

AW: Datenbank Backup mit Firebird
 
Bei Zeos müsstest du dann diesen Dienst selber implementieren oder ein Batch erzeugen, welcher dann per geplanten Task ausgefüht wird

Lemmy 22. Jun 2010 06:17

AW: Datenbank Backup mit Firebird
 
Hi,

ruf gbak einfach aus dem Programm heraus auf. Lass dir dabei das Log in eine Datei schreiben, die du mit deinem Programm nach dem Batch analysieren kannst (sonst bekommst Du nicht mit ob das Backup oder REstore funktioniert hat).
gbak dann nicht aus dem FB-Ordner holen, sondern direkt neben deiner App in das Installationsverzeichnis legen.

gbak dabei mit ShellExecuteEx aufrufen, das wartet bis gbak fertig ist....

einfachere Alternative wie schon angedeutet UIB installieren


Grüße

Jens Hartmann 24. Jun 2010 18:26

AW: Datenbank Backup mit Firebird
 
Hallo zusammen,

ich habe es jetzt mit TIBBackupService gelößt. Allerdings würde mich mal interesieren, ob das so OK ist. Ich habe in verschiedenen Threads von Problemen mit der Interbase Kompo gelesen. Hier mal meine Code...
Delphi-Quellcode:
procedure TfDBSave.btnSaveTestClick(Sender: TObject);
var
  FormCaption : string;
begin
  try
    FormCaption := Caption;
    Caption:= 'Backup läuft !';
    try
      with ibBackUpPSSecur do
      begin
        ServerName:= 'LOCALHOST';
        Params.Add('user_name=SYSDBA');
        Params.Add('password=masterkey');
        LoginPrompt := False;
        Active:= True;
        try
          Verbose:= False;
          Options:= [];
          DataBaseName:= 'PSSecur';
          BackupFile.Clear;
          BackupFile.Add(edtExeName.Text+'\PSSecurdat.bak');
          ServiceStart;
        finally
          Active:= False;
        end;
      end;
    finally
      Caption:= FormCaption;
    end;
  finally
    ibBackUpPSSecur.Active := False;
  end;
end;
Gruß Jens

mkinzler 24. Jun 2010 18:28

AW: Datenbank Backup mit Firebird
 
Diese Komponente ist eigentlich für Interbase. Deshalb könnte es sein, dass sie nicht so funktioniert wie gedacht bzw. irgendwann nicht mehr funktioniert

DeddyH 24. Jun 2010 18:41

AW: Datenbank Backup mit Firebird
 
Da ich mir im Moment auch keine teuren Spezial-Zugriffskomponenten leisten kann, bin ich auf UIB umgestiegen. Mit den Kompos funktioniert es jedenfalls bislang ohne Probleme. Alternativ könnte man auch FBLIB ins Auge fassen.

Jens Hartmann 24. Jun 2010 18:45

AW: Datenbank Backup mit Firebird
 
Das heißt also, das ich besser mit z.B. FIBPlus etc. arbeiten würde, welche jedoch kostenplichtig sind. Allerdings ist die Frage, ob es wirklich notwendig ist eine kostenpflichtige Kompo einzusetzen, wennn das Backup nicht unbedingt sehr wichtig ist?

Gruß Jens

DeddyH 24. Jun 2010 18:46

AW: Datenbank Backup mit Firebird
 
Die beiden von mir genannten sind kostenlos.

mkinzler 24. Jun 2010 18:54

AW: Datenbank Backup mit Firebird
 
Und für den Backup kannst du ja gbak/nbak direkt aufrufen

Jens Hartmann 24. Jun 2010 19:06

AW: Datenbank Backup mit Firebird
 
Danke Deddy,

die werde ich mal testen.

Zitat:

Und für den Backup kannst du ja gbak/nbak direkt aufrufen
Danach habe ich ja in diesem Thread gefragt. Allerdings bestehen dort die Probleme mit User/Password etc. Diese wären ersichtlich. Zumindest in der mir bislang bekannten Variante. Desweiteren, muss ich Garantieren, das GBak auf dem Rechner ist und bin somit wieder Fremdprodukt abhängig.

Gruß Jens

DeddyH 24. Jun 2010 19:07

AW: Datenbank Backup mit Firebird
 
Ich habe jetzt nicht genau nachgesehen, aber die Komponenten setzen AFAIK auch alle auf gbak auf (ich kann mich aber auch irren).

mkinzler 24. Jun 2010 19:11

AW: Datenbank Backup mit Firebird
 
gbak/nbak sind ja Teil der FireBird Distribution. Notfalls liefere es halt mit.

Jens Hartmann 24. Jun 2010 19:19

AW: Datenbank Backup mit Firebird
 
Zitat:

Zitat von DeddyH
Ich habe jetzt nicht genau nachgesehen, aber die Komponenten setzen AFAIK auch alle auf gbak auf (ich kann mich aber auch irren).

Dann sollte es ja egal sein welche.
Zitat:

Zitat von mkinzler
gbak/nbak sind ja Teil der FireBird Distribution. Notfalls liefere es halt mit.

Das ist mir bewusst. Nur muss ich halt auch darauf achten, das dieses immer vorhanden ist etc. Allerdings würde mich mal interesieren, woher die IB Kompo weiß, das meine Alias PSSecur die DB PSSecurdat ist. Ich muss dieser Kompo ja keine Connection einrichten. Das würde für mich bedeuten, das diese Kompo auf die aliasconf von Firebird zugreift, was wiederum auf eine Kompalipität zur FB hinweisen würde, ODER?

Gruß Jens

mkinzler 24. Jun 2010 19:22

AW: Datenbank Backup mit Firebird
 
Noch sind FireBird und Interbase ja noch recht ähnlich ( beide haben eine rückwärtskompatible API zu IB 6). Es kann dir aber niemnad garantieren, ob das so bleibt

Jens Hartmann 24. Jun 2010 19:31

AW: Datenbank Backup mit Firebird
 
Das ist wohl war. Allerdings weiß ich zur Zeit eh noch nicht so richtig wie ich mit meinem Programm weiter machen werde. Zur Zeit denke ich z.B. über eine Weboberfläche nach etc. Und dann werde ich vermutlich die DB eh neu aufsetzen müssen.

Allerdings würde mich das mit dem Alias mal interesieren.

Gruß Jens

mkinzler 24. Jun 2010 19:34

AW: Datenbank Backup mit Firebird
 
GBak greift ja auch auf den Server zu und der kennt die Alias.conf.
Warum musst du die DB wegen einer Weboberfläche neu aufsetzen?

Jens Hartmann 24. Jun 2010 19:55

AW: Datenbank Backup mit Firebird
 
Das weiß ich noch nicht. Ich denke das ich in der vorhandenen DB eineige Fehler gemacht habe. Da ich aber zur Zeit keine Delphi.Net besitze und mich eventuell mit Visuall WebDeveloper beschäftigen will, um die Weboberfläche zu erstellen, kann es halt sein, das ich die DB in irgendeiner Art und Weise die DB anpassen bzw. neu aufbauen werde.
Zitat:

GBak greift ja auch auf den Server zu und der kennt die Alias.conf.
Das ist mir klar, der wird ja auch mit Firebird ausgeliefert, IB nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:44 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