HQbird-replicatie
Native master-slave-replicatie in HQbird Enterprise: DML en DDL, geen triggers, unieke of primaire sleutels op gerepliceerde tabellen. 100% Firebird 2.5-5.0 compatibel - wissel van binaries zonder backup/restore. Eén licentie dekt één master en één replica; extra replica's worden apart verkocht.
Asynchroon versus synchroon
Async is meestal de juiste keuze voor productie.
Asynchroon (aanbevolen)
De master schrijft vastgelegde wijzigingen naar segmentbestanden; replica's halen deze op en passen ze op de achtergrond toe. Standaard flush is 90 seconden (vaak ingesteld op 15-30). De replica kan online opnieuw worden aangemaakt; geen master-stop nodig om te starten. Geschikt voor cloud of verbindingen met hoge latentie. Vertraging kan toenemen onder zware belasting.
Synchroon
De master schrijft vastgelegde wijzigingen rechtstreeks naar replica('s). Vertraging ~1-2 seconden; vereist een stabiel ~1 Gbps-pad. De replica is alleen-lezen (met kanttekeningen). Het opnieuw aanmaken van een replica vereist het stoppen van de master. Gebruik voor aangepaste failover (3+ nodes), het offloaden van reads, of gemengd met async.
Installatie
Installeer HQbird Server met Firebird op master en replica. Windows: HQbirdServer2024.exe (2.5-5.0). Beheertools zijn optioneel voor replicatie. Linux: installatiehandleiding. Registreer met een proef- of volledige licentie. Gebruikershandleiding §2 behandelt de serverinstallatie.
Firebird 2.5: HQbird installeert SuperClassic. Als de databaseheader een groot page-buffer-aantal heeft, kan de prestaties lijden. Stel buffers in op 0 zodat firebird.conf wint:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\pad\database.fdb
Stappen - asynchrone replicatie
- Configureer de database als master.
- Maak een replicabestand aan (
nbackupof "Reinitialize replica database"). - Configureer de replicaserver.
Stap 1 - Master
Open http://127.0.0.1:8082 (poort is configureerbaar). Log in met admin / sterk wachtwoord. Bevestig dat de Active server-widget Firebird 2.5/3.0/4.0/5.0 HQbird toont.
Database toevoegen: bijnaam plus bestandspad, geen alias - aliassen worden niet gerepliceerd.
Open replicatie via het databaseheaderpictogram. Kies Master → Asynchroon → Opslaan. Herstart Firebird (of alle Classic-verbindingen) zodat parameters bij de eerste verbinding worden geladen.
- Log directory - operationele segmenten, standaard
${db.default-directory}\ReplicationLog. Engine-beheerd; laat het staan. - Log archive directory - gearchiveerde segmenten, standaard
${db.path}.LogArchnaast de database. - Override log archive command - leeg laten.
- Force flush committed data - standaard 90 seconden.
U zou direct na schrijfacties roterende bestanden in de log directory moeten zien, daarna gearchiveerde segmenten na commit/timeout. Raak operationele segmenten niet aan. Archiefkopieën naar de replica kopiëren: netwerkshare of FTP/SSH.
Stap 2 - Initieel replicabestand
Vanaf HQbird 2018 R2 bouwt Reinitialize replica database een kopie naast de master, met een naam zoals employee30.fdb.17-Apr-2018_142507.4replica. Of gebruik nbackup zonder de master te stoppen.
Stap 3 - Replicaserver
Registreer de replica in FBDataGuard nadat deze een replica-GUID heeft. De vereiste instelling is de map met gearchiveerde segmenten. Opslaan en Firebird herstarten. Standaardwaarden worden geïmporteerd uit een map naast de replica; verwerkte segmenten worden verwijderd. Meng geen archieven van verschillende databases in één map.
Stappen - synchrone replicatie
- Stop Firebird.
- Kopieer het masterbestand, schakel het over naar replicamodus, kopieer naar replicaserver(s).
- Configureer replicaserver(s) in FBDataGuard.
- Start replica('s) vóór de master.
- Configureer master, start daarna de master.
Meer downtime dan async: de replica moet online zijn voordat de master start. Voorbeeld externe replica: server replicaserver, pad /data/test2.fdb. Op de replica is gfix -replica {master-guid} voldoende naast die kopie.
Testen op een productiesysteem
Stel disable_on_error in op true zodat een replicatiefout replicatie uitschakelt en de master blijft serveren. Re-initialiseer vanuit een schone log nadat u de fout hebt opgelost. Schakel de Replication log-taak in FBDataGuard in voor fouten en waarschuwingen.
Een replicakopie maken met nbackup
Werkt online voor async (en extra replica's) zonder de master te stoppen. Of stop Firebird en kopieer het bestand.
nbackup -l database_pad_naam -user SYSDBA -pass masterkey
copy database_pad_naam replica_pad_naam
nbackup -n database_pad_naam -user SYSDBA -pass masterkey
nbackup -f replica_pad_naam
gfix replica_pad_naam -replica {DATABASEGUID} -user SYSDBA -pass masterkey
DATABASEGUID is het unieke id van de master uit gstat -h. Als dit ontbreekt, verbind dan eenmaal met HQbird's Firebird-binaries en voer gstat -h opnieuw uit.
gfix disk:\pad\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\pad\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
Lege {} zet het bestand terug naar normale (lees-schrijf) modus. Op een replica mag u alleen-lezen werk uitvoeren (SELECT); wijzig geen gegevens of metadata.