AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Backup Problem nach Umstellung auf V3.0 embedded
Thema durchsuchen
Ansicht
Themen-Optionen

Backup Problem nach Umstellung auf V3.0 embedded

Ein Thema von TurboMagic · begonnen am 30. Dez 2023 · letzter Beitrag vom 1. Jan 2024
Antwort Antwort
TurboMagic
Online

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.847 Beiträge
 
Delphi 12 Athens
 
#1

Backup Problem nach Umstellung auf V3.0 embedded

  Alt 30. Dez 2023, 15:44
Datenbank: Firebird • Version: 2.5/3.0 • Zugriff über: FireDAC
Hallo,

ich stelle in einer 11.3 Anwendung gerade von der bisher genutzten Firebird 2.5 Embedded
auf die 3.0 Embedded um und stelle nun fest, dass das Backup im Programm immer fehlschlägt,
weil noch jemand anderes die DB Datei auf hat.

Mir ist auch klar, wer der andere ist: die normale DB Connection des selben Programs.
Nur: in V2.5 ging das problemfrei parallel...
Ist das in 3.0 (embedded) anders? Weiß das jemand?

Ja, der Lösungsansatz muss jetzt wohl sein, dass das Programm so umgebaut wird, dass es
zuerst die DB Verbindung schließt, bevor es ein Backup oder Restore fahren will...
...wäre mir aber natürlich lieber wenn's auch nanders ginge...

Grüße
TurboMagic
  Mit Zitat antworten Zitat
TurboMagic
Online

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.847 Beiträge
 
Delphi 12 Athens
 
#2

AW: Backup Problem nach Umstellung auf V3.0 embedded

  Alt 30. Dez 2023, 16:23
Hm, eine weitere Recherche ergab, dass nach Umstellung auf 3.0
das Backup wohl nur funktioniert hatte, weil ich in der Entwicklungs VM
auch einen 3.0 Server installiert habe, da ein anderes Tool mit der
Embedded Variante nicht klar kam.

Jetzt versuche ich das Backup Erstellen zu reparieren, scheitere aber
am Protocol. Wenn ich TFDIBBackup.Protocol nichts zuweise, bekomme ich
eine Fehlermeldung, die darauf hinweißt, dass XNET benutzt werden soll,
was m.W. unter 3.0 aber nicht mehr geht. Ich habe mal versucht .Protocol
auf ipLocal oder ipTCPIP zu setzen, damit gibt's dann aber eine Fehlermelung

Code:
Cannot attach to services manager
service :service_mgr is not defined
[FireDAC][Phys][FB]invalid service handle
Hier mein Code zum erzeugen der Backup Instanz:

Delphi-Quellcode:
constructor TDBBackup.Create(const DatabaseFileName : string;
                             const VendorLib : string);
begin
  FFBDriverLink := TFDPhysFBDriverLink.Create(nil);
  FFBDriverLink.VendorLib := VendorLib;
  FFBDriverLink.Embedded := true;

  FFBBackup := TFDIBBackup.Create(nil);
  FFBBackup.ConnectTimeout := c_DBBackupConnectTimeout;
  FFBBackup.Database := DatabaseFileName;
  FFBBackup.DriverLink := FFBDriverLink;
  FFBBackup.Password := c_DBPassword;
  FFBBackup.QueryTimeout := c_DBBackupServiceTimeout;
  FFBBackup.UserName := c_DBUserName;
  FFBBackup.Verbose := true;

  FFBBackup.Protocol := TIBProtocol.ipTCPIP;

  FFBBackup.AfterExecute := OnBackupFinishedInternal;
  FFBBackup.OnProgress := OnBackupProgressInternal;
  FFBBackup.OnError := OnBackupErrorInternal;
end;

[..] // später Erstellen des Backups:

procedure TDBBackup.CreateBackup(const FileName: string);
begin
  FFBBackup.BackupFiles.Clear;
  FFBBackup.BackupFiles.Add(FileName);
  FFBBackup.Backup;
end;
Gibt es ein generelles Kompatibilitätsproblem mit FireDAC's
TFDIBBackup mit Firebird Embedded >= 3.0?

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
646 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Backup Problem nach Umstellung auf V3.0 embedded

  Alt 31. Dez 2023, 07:12
in fb3 embedded ist per default der superservermodus aktiv, oder mit anderen worten
eine connection braucht exklusiven lock auf die datenbank datei.

netterweise kann man aber auch beim embedded in fb3 per conf auf classic umstellen
https://www.ibphoenix.com/files/Embedded_fb3.pdf

"#ServerMode = Super
As such, it needs to acquire an exclusive lock on the database file to connect and, while
connected, it prevents shared connections from other engine instances. With this
configuration, it is not possible, for example, to have client/server clients connected
simultaneously with browser clients attached to the same database through an intranet
application that uses an embedded engine.
The solution is to run your embedded engine as a [Super]Classic process in concert with
your Superclassic or Classic server. Uncomment the ServerMode parameter in the
firebird.conf of your embedded structure and set it to Classic or Superclassic:
ServerMode = Classic
Note, for the embedded engine, Classic and Superclassic are equivalent."


Sind aber auch noch andere ganz gute hinweise in der datei da.

Ob da firedac selber dafür geeignet ist, weiss ich aber nicht, weil wenn die da vielelicht intern
wieder irgendwelche tricksereien nutzen, kann es sein, das da die ursache für dein Problem ist
Es hindert dich niemand daran, auch mit dem embedded die passende gbak.exe (in der passenden
32 oder 64 bit version wie die fbclient.dll) auszuliefern und mit der dann ein kommadozeilen
backup zu machen aus deinem programm.
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
TurboMagic
Online

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.847 Beiträge
 
Delphi 12 Athens
 
#4

AW: Backup Problem nach Umstellung auf V3.0 embedded

  Alt 31. Dez 2023, 08:14
Danke für die Tipps.

1. Eigentlich möchte ich bald auf FB4 gehen
2. Exklusiver Zugriff sollte machbar sein, aber wenn ich
Verbindungsprobleme wie derzeit hab, ist es fruchtlos
3. GBak aufrufen ist prinzipiell möglich, nur nicht ganz
was ich will. Bisher in 2.5 hat es ja auch so
funktioniert. Ich Frage mich halt warum das Verbindungs-
problem existiert.
4. Ich werde das mal versuchen in einem separaten kleinen
Programm zu testen...

Grüße und guten Rutsch

TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
646 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Backup Problem nach Umstellung auf V3.0 embedded

  Alt 31. Dez 2023, 08:23
ist bei fb4 identisch, gäbe auch aktuell eigentlich keine grund mehr, mehr fb3 zu bleiben aus meiner sicht
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
TurboMagic
Online

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.847 Beiträge
 
Delphi 12 Athens
 
#6

AW: Backup Problem nach Umstellung auf V3.0 embedded

  Alt 31. Dez 2023, 09:39
Da hast du sicher recht. Ich wollte halt nicht gleich den großen Sprung machen,
falls doch noch was ist.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:55 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