Deze pagina is automatisch vertaald. Lees het Engelse origineel. English

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.

Asynchrone Firebird-replicatie: journalsegmenten van master naar replica
Async: segmenten op schijf, op de achtergrond toegepast.
Synchrone Firebird-replicatie: master schrijft rechtstreeks naar replica
Sync: batches bij commit via een live verbinding.

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

  1. Configureer de database als master.
  2. Maak een replicabestand aan (nbackup of "Reinitialize replica database").
  3. 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.

HQbird-console klaar om een database toe te voegen voor replicatie

Database toevoegen: bijnaam plus bestandspad, geen alias - aliassen worden niet gerepliceerd.

Database toevoegen dialoog met expliciet bestandspad

Open replicatie via het databaseheaderpictogram. Kies MasterAsynchroon → Opslaan. Herstart Firebird (of alle Classic-verbindingen) zodat parameters bij de eerste verbinding worden geladen.

Basisinstellingen voor asynchrone master-replicatie
Basis master-instellingen.
Volledige parameters voor asynchrone master-replicatie
Meer >> - standaardwaarden zijn prima bij een schone installatie.
  • Log directory - operationele segmenten, standaard ${db.default-directory}\ReplicationLog. Engine-beheerd; laat het staan.
  • Log archive directory - gearchiveerde segmenten, standaard ${db.path}.LogArch naast 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.

Replicatiesegmentbestanden op schijf

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.

Basisinstellingen voor asynchrone replica
Gedetailleerde instellingen voor asynchrone replica

Stappen - synchrone replicatie

  1. Stop Firebird.
  2. Kopieer het masterbestand, schakel het over naar replicamodus, kopieer naar replicaserver(s).
  3. Configureer replicaserver(s) in FBDataGuard.
  4. Start replica('s) vóór de master.
  5. 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.

Configuratie voor synchrone replicatie

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.

disable_on_error true voor replicatietesten
Replicatielog-monitoringtaak in HQbird

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.

gstat -h met Database GUID
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.