AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird Backup/Restore mit FIBPlus
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Backup/Restore mit FIBPlus

Ein Thema von Chemiker · begonnen am 28. Jun 2009 · letzter Beitrag vom 4. Dez 2010
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

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

Re: Firebird Backup/Restore mit FIBPlus

  Alt 1. Jul 2009, 06:37
Zitat:
wie kann man dann die DB „reinigen“ sprich gelöschte Datensätze tatsächlich löschen, nicht abgeschlossene Transaktionen schließen usw. und das am liebsten beim laufenden System?
Mit einem Sweep
Ein Backup/Restore Zyklus ist allerdings die effektivste Lösung
Markus Kinzler
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#12

Re: Firebird Backup/Restore mit FIBPlus

  Alt 1. Jul 2009, 09:45
@mkinzler

IMHO schließt ein Sweep aber keine offenen Transaktionen. Die müssen erst zu sonst läuft der Sweep ins Leere..
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Firebird Backup/Restore mit FIBPlus

  Alt 1. Jul 2009, 09:47
Ja deshalb ist ein Backup/Restore ja am effektivsten
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Firebird Backup/Restore mit FIBPlus

  Alt 1. Jul 2009, 10:54
Hallo,

Zitat:
Wie würde man so was organisatorisch und technisch umsetzen?
Also ich restore immer in eine restore.fdb (data.fdb -> data.fbk -> restore.fdb).

Ein einfacher Test, ob alles gutgegangen ist,
wäre ein select count (*) über alle Tabellen, dann Backup, dann Restore,
Connect zur Restore, Select Count(*) und prüfen,
ob alle Datensätze drinstehen.

Das
select count (*) über alle Tabellen, dann Backup,
in der gleichen Transaktion laufen lassen.

Wenn das Backup also Dienst (-service) läuft,
sollte der Rechner nicht in die Knieh gehen
Auch sollte man das verbose (habe nur die Komamndzeilen-Params im Kopf)
weglassen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Firebird Backup/Restore mit FIBPlus

  Alt 22. Jul 2009, 09:26
moin,
ich hab das mal ausprobiert und das programm spuckt zwar aus, dass es durchgelaufen ist, aber die neue Sicherungsdatei ist nicht erstellt worden ...

nutze Delhpi 5 ^^

würde mich über einen Lösungsvorschlag freuen
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: Firebird Backup/Restore mit FIBPlus

  Alt 22. Jul 2009, 13:32
scheint wohl irgendwie am passwort zu liegen, hab jetzt diese fehlermeldung bekommen.

........
Unsuccessful exception caused by a system error that procludes
successful execution of subsequent statements.
Your user name and password are not defined. Ask your databas administrator ......... und so weiter.

habe aber die parameterübergabe drin

Delphi-Quellcode:
    LoginPrompt := False;
    Params.Add('user_name='+User);
    Params.Add('password='+Password);
    Active := True;
mfg
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Firebird Backup/Restore mit FIBPlus

  Alt 23. Jul 2009, 08:44
hi,
... hab nen fehler gefunden und jetzt erstellt er eine fbk datei, allerdings hat die nur 60kb (bei einer ausgangsdateigröße der db von ca 40mb) er scheint da also irgendwo abzubrechen, kommt allerdings kein fehler, in dem debugger auch nich ^^

mfg
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Firebird Backup/Restore mit FIBPlus

  Alt 23. Jul 2009, 21:10
Hallo Freiwilderer,

tut mir leid das ich jetzt erst jetzt Zeit gefunden habe Dir zu antworten, bin zur Zeit dabei mich in C# einzuarbeiten.

Das die Datei kleiner wird ist ja durchaus möglich, weil die Datenbank ja aufgeräumt wird und die Datensätze die gelöscht sind auch tatsächlich gelöscht werden. Ob die ganze Aktion funktioniert hat, kann man ja sehen wenn man nach dem BackUp ein Restore durchführt.

Ich habe mir ein kleines Programm geschrieben und mit den beiden Befehlen etwas zu spielen, was allerdings noch nicht eingearbeitet worden ist, ist der automatische Test ob das Backup auf in alle Einzelheiten auch richtig durchgeführt worden ist.

So sieht der Quelltext für das Backup aus:

Delphi-Quellcode:
procedure TForm3.btAktionAusfuehrenClick(Sender: TObject);
begin
  with pFIBBackupService1 do
  begin
    BackupFile.Clear;
    Params.Clear;
    ServerName:= 'localhost';
    LoginPrompt:= FALSE;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active:= TRUE;
    try
      Verbose := True;
      Options:= [IgnoreLimbo,NonTransportable];
      DatabaseName:= FFBDBOriginal;
      BackupFile.Add(FFBDBCopy);
      ServiceStart;
      while not EOF do
      begin
        MemoAktionenAnzeigen.Lines.Add(GETNextLine);
      end;
    finally
      Active:= FALSE;
    end;
  end;
end;
Und so für das Restore:

Delphi-Quellcode:
procedure TForm3.Button3Click(Sender: TObject);
begin
  with pFIBRestoreService1 do
  begin
    ServerName:= 'localhost';
    LoginPrompt:= FALSE;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active:= TRUE;
    try
      Verbose := True;
      Options := [Replace, UseAllSpace];
      PageBuffers := 3000;
      PageSize := 4096;
      BackupFile.Add(FFBDBCopy);
      DatabaseName.Add(FFBDBOriginal);
      ServiceStart;
      while not EOF do
      begin
        MemoAktionenAnzeigen.Lines.Add(GETNextLine);
      end;
    finally
      Active := False;
    end;
  end;
end;
Soweit funktioniert das auch, aber bitte nicht mit der original Datenbank durchführen sonder eine Test Datenbank anlegen und selber testen. In der Hilfe von FIBPlus ist auch einiges beschrieben, man muss leider sich das nur mühselig zusammensuchen.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Firebird Backup/Restore mit FIBPlus

  Alt 24. Jul 2009, 08:27
hi chemiker,
danke für deine Antwort.

läuft so irgendwie immer noch nicht
also meine Ursprungsdatenbank hat 36MB
wenn ich die dann gesichert habe sind es noch 61KB (was ich für ziemlich klein halte)
nach einem restore, den ich gerade ausprobiert habe, hat die DB dann eine größe von ca 1MB

hab die while not eof schleife rausgenommen, weil die ja wohl eh nur zum protokollieren is, sonst aber alles so weit übernommen.

hier nochmal meine backupprocedure, vielleicht sieht da jemand noch n fehler...:
Delphi-Quellcode:
procedure TfrmDatensicherung.BT_StartClick(Sender: TObject);
begin
  with FIB_Backup do
  begin
    BackupFile.Clear;
    Params.Clear;
    if Pos('/3050:',ED_DBPfad.Text) > 0 then // Lokaler oder UNC Pfad?
     begin
      DatabaseName := Copy(ED_DBPfad.Text,Pos('/3050:',ED_DBPfad.Text)+6,Length(ED_DBPfad.Text));
      ServerName := Copy(ED_DBPfad.Text,1,Pos('/3050:',ED_DBPfad.Text)+4);
      Protocol := TCP;
     end
    else
     begin
      ServerName:= 'localhost';
      DatabaseName := ED_DBPfad.Text;
      Protocol := Local;
     end;

    LoginPrompt:= FALSE;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active:= TRUE;
    try
      Verbose := True;
      Options:= [IgnoreLimbo,NonTransportable];
      BackupFile.Add(ED_Sicherungspfad.Text);
      ServiceStart;
    finally
      Active:= FALSE;
    end;
  end;
end;
mfg
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: Firebird Backup/Restore mit FIBPlus

  Alt 24. Jul 2009, 08:32
KOMANDO: ZURÜCK

... ... die wiederhergestellte datenbank, ... die mit etwas über ein MB läuft
...
das heißt, wohl, dass ich mich einfach mit der größe vertan hab ^^
aber ne DB Sicherung, mit 61KB is ja schon echt sehr klein ^^

is halt noch nich so viel drin ... wäre aber nie auf die idee gekommen, dass das richtig sein könnte

vielen dank für die hilfe.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 00:46 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