HQbird-Replikation
Native Master-Slave-Replikation in HQbird Enterprise: DML und DDL, ohne Trigger, eindeutige oder Primärschlüssel auf replizierten Tabellen. 100% Firebird 2.5-5.0 kompatibel - Binärdateien ohne Backup/Restore wechseln. Eine Lizenz deckt einen Master und eine Replica ab; zusätzliche Replicas werden separat verkauft.
Asynchron vs. synchron
Asynchron ist in der Produktion normalerweise die richtige Wahl.
Asynchron (empfohlen)
Der Master protokolliert festgeschriebene Änderungen in Segmentdateien; Replicas ziehen und wenden sie im Hintergrund an. Standard-Flush ist 90 Sekunden (oft auf 15-30 gesetzt). Die Replica kann online neu erstellt werden; kein Master-Stopp zum Starten. Gut für Cloud- oder Hochlatenz-Verbindungen. Die Verzögerung kann unter hoher Last wachsen.
Synchron
Der Master schreibt festgeschriebene Änderungen direkt an die Replica(s). Verzögerung ~1-2 Sekunden; benötigt eine stabile ~1-Gbit/s-Verbindung. Die Replica ist schreibgeschützt (mit Einschränkungen). Das Neuerstellen einer Replica erfordert das Stoppen des Masters. Verwenden Sie es für benutzerdefiniertes Failover (3+ Knoten), das Auslagern von Lesevorgängen oder gemischt mit asynchron.
Installation
Installieren Sie HQbird Server mit Firebird auf Master und Replica. Windows: HQbirdServer2024.exe (2.5-5.0). Admin-Tools sind für die Replikation optional. Linux: Installationsanleitung. Registrieren Sie sich mit einer Test- oder Volllizenz. Benutzerhandbuch §2 behandelt die Servereinrichtung.
Firebird 2.5: HQbird installiert SuperClassic. Wenn der Datenbank-Header eine große Seitenpuffer-Anzahl hat, kann die Leistung leiden. Setzen Sie die Puffer auf 0, damit firebird.conf gewinnt:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb
Schritte - asynchrone Replikation
- Konfigurieren Sie die Datenbank als Master.
- Erstellen Sie eine Replica-Datei (
nbackupoder „Replica-Datenbank neu initialisieren“). - Konfigurieren Sie den Replica-Server.
Schritt 1 - Master
Öffnen Sie http://127.0.0.1:8082 (Port ist konfigurierbar). Anmelden admin / starkes Passwort. Bestätigen Sie, dass das Widget „Aktiver Server“ Firebird 2.5/3.0/4.0/5.0 HQbird anzeigt.
Datenbank hinzufügen: Spitzname plus Dateipfad, kein Alias - Aliase werden nicht repliziert.
Öffnen Sie die Replikation über das Datenbank-Header-Symbol. Wählen Sie Master → Asynchron → Speichern. Starten Sie Firebird neu (oder alle Classic-Verbindungen), damit die Parameter beim ersten Verbindungsaufbau geladen werden.
- Protokollverzeichnis - operative Segmente, Standard
${db.default-directory}\ReplicationLog. Engine-verwaltet; lassen Sie es. - Protokollarchivverzeichnis - archivierte Segmente, Standard
${db.path}.LogArchneben der Datenbank. - Archivierungsbefehl für Protokoll überschreiben - leer lassen.
- Festschreiben von committeten Daten erzwingen - Standard 90 Sekunden.
Sie sollten unmittelbar nach Schreibvorgängen rotierende Dateien im Protokollverzeichnis sehen, danach archivierte Segmente nach Commit/Timeout. Fassen Sie operative Segmente nicht an. Kopieren von Archiven auf die Replica: Netzwerkfreigabe oder FTP/SSH.
Schritt 2 - Initiale Replica-Datei
Ab HQbird 2018 R2 erstellt Replica-Datenbank neu initialisieren eine Kopie neben dem Master, benannt wie employee30.fdb.17-Apr-2018_142507.4replica. Oder verwenden Sie nbackup, ohne den Master zu stoppen.
Schritt 3 - Replica-Server
Registrieren Sie die Replica in FBDataGuard nachdem sie eine Replica-GUID hat. Die erforderliche Einstellung ist der Ordner der archivierten Segmente. Speichern und Firebird neu starten. Standardwerte werden aus einem Ordner neben der Replica importiert; verarbeitete Segmente werden gelöscht. Mischen Sie keine Archive verschiedener Datenbanken in einem Ordner.
Schritte - synchrone Replikation
- Stoppen Sie Firebird.
- Kopieren Sie die Master-Datei, schalten Sie sie in den Replica-Modus, kopieren Sie sie auf die Replica-Server.
- Konfigurieren Sie die Replica-Server in FBDataGuard.
- Starten Sie die Replica(s) vor dem Master.
- Konfigurieren Sie den Master und starten Sie dann den Master.
Mehr Ausfallzeit als asynchron: Die Replica muss online sein, bevor der Master startet. Beispiel für eine entfernte Replica: Server replicaserver, Pfad /data/test2.fdb. Auf der Replica ist gfix -replica {master-guid} zusätzlich zu dieser Kopie ausreichend.
Testen in einem Produktionssystem
Setzen Sie disable_on_error auf true, damit ein Replikationsfehler die Replikation deaktiviert und der Master weiterhin bedient. Reinitialisieren Sie aus einem sauberen Protokoll, nachdem Sie den Fehler behoben haben. Aktivieren Sie den Job Replikationsprotokoll in FBDataGuard für Fehler und Warnungen.
Erstellen einer Replica-Kopie mit nbackup
Funktioniert online für asynchron (und zusätzliche Replicas), ohne den Master zu stoppen. Oder stoppen Sie Firebird und kopieren Sie die Datei.
nbackup -l database_path_name -user SYSDBA -pass masterkey
copy database_path_name replica_path_name
nbackup -n database_path_name -user SYSDBA -pass masterkey
nbackup -f replica_path_name
gfix replica_path_name -replica {DATABASEGUID} -user SYSDBA -pass masterkey
DATABASEGUID ist die eindeutige ID des Masters aus gstat -h. Wenn sie fehlt, verbinden Sie sich einmal mit den HQbird-Firebird-Binärdateien und führen Sie gstat -h erneut aus.
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
Leeres {} bringt die Datei in den normalen (Lese-Schreib-)Modus zurück. Auf einer Replica dürfen Sie schreibgeschützte Arbeiten (SELECT) ausführen; ändern Sie keine Daten oder Metadaten.