Tato stránka byla strojově přeložena. Přečtěte si anglický originál. English

Nativní replikace master-slave v HQbird Enterprise: DML a DDL, bez triggerů, unikátní nebo primární klíče na replikovaných tabulkách. 100% kompatibilní s Firebird 2.5-5.0 - přepněte binárky bez zálohy/obnovy. Jedna licence pokrývá jednoho mastera a jednu repliku; další repliky se prodávají samostatně.

Asynchronní vs synchronní

Asynchronní je obvykle správná volba pro produkci.

Asynchronní (doporučeno)

Master zapisuje potvrzené změny do souborů segmentů; repliky je načítají a aplikují na pozadí. Výchozí flush je 90 sekund (často se nastavuje na 15-30). Repliku lze znovu vytvořit online; pro spuštění není nutné zastavit master. Vhodné pro cloud nebo spoje s vysokou latencí. Zpoždění může růst při velkém zatížení.

Synchronní

Master zapisuje potvrzené změny přímo na repliku(y). Zpoždění ~1-2 sekundy; vyžaduje stabilní cestu ~1 Gbps. Replika je pouze pro čtení (s výhradami). Vytvoření repliky vyžaduje zastavení mastera. Použijte pro vlastní failover (3+ uzlů), offload čtení nebo kombinaci s asynchronním.

Asynchronous Firebird replication: journal segments from master to replica
Async: segmenty na disku, aplikované na pozadí.
Synchronous Firebird replication: master writes directly to replica
Sync: dávky při potvrzení přes živé připojení.

Instalace

Nainstalujte HQbird Server s Firebird na master a repliku. Windows: HQbirdServer2024.exe (2.5-5.0). Administrační nástroje jsou pro replikaci volitelné. Linux: instalační příručka. Zaregistrujte se s trial nebo plnou licencí. Uživatelská příručka §2 pokrývá nastavení serveru.

Firebird 2.5: HQbird instaluje SuperClassic. Pokud má hlavička databáze velký počet page bufferů, může utrpět výkon. Nastavte buffery na 0, aby rozhodoval firebird.conf:

gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb

Kroky - asynchronní replikace

  1. Nakonfigurujte databázi jako master.
  2. Vytvořte soubor repliky (nbackup nebo „Reinitialize replica database“).
  3. Nakonfigurujte server repliky.

Krok 1 - Master

Otevřete http://127.0.0.1:8082 (port je konfigurovatelný). Přihlaste se admin / silné heslo. Potvrďte, že widget Active server zobrazuje Firebird 2.5/3.0/4.0/5.0 HQbird.

HQbird console ready to add a database for replication

Přidejte databázi: přezdívku plus cestu k souboru, ne alias - aliasy se nereplikují.

Add database dialog with explicit file path

Otevřete replikaci z ikony hlavičky databáze. Zvolte MasterAsynchronous → Uložit. Restartujte Firebird (nebo všechna Classic připojení), aby se parametry načetly při prvním připojení.

Basic async master replication settings
Základní nastavení mastera.
Full async master replication parameters
Více >> - výchozí hodnoty jsou v čisté instalaci v pořádku.
  • Log directory - provozní segmenty, výchozí ${db.default-directory}\ReplicationLog. Spravuje engine; ponechte.
  • Log archive directory - archivované segmenty, výchozí ${db.path}.LogArch vedle databáze.
  • Override log archive command - ponechte prázdné.
  • Force flush committed data - výchozí 90 sekund.

Po zápisech byste měli okamžitě vidět rotující soubory v adresáři logů, poté archivované segmenty po potvrzení/časovém limitu. Nedotýkejte se provozních segmentů. Kopírování archivů na repliku: síťová sdílená složka nebo FTP/SSH.

Replication segment files on disk

Krok 2 - Počáteční soubor repliky

Od HQbird 2018 R2 vytvoří Reinitialize replica database kopii vedle mastera s názvem jako employee30.fdb.17-Apr-2018_142507.4replica. Nebo použijte nbackup bez zastavení mastera.

Krok 3 - Server repliky

Zaregistrujte repliku ve FBDataGuard poté, co má GUID repliky. Požadované nastavení je složka s archivovanými segmenty. Uložte a restartujte Firebird. Výchozí hodnoty se importují ze složky vedle repliky; zpracované segmenty se smažou. Nemíchejte archivy z různých databází v jedné složce.

Basic async replica settings
Detailed async replica settings

Kroky - synchronní replikace

  1. Zastavte Firebird.
  2. Zkopírujte soubor mastera, přepněte jej do režimu repliky, zkopírujte na server(y) repliky.
  3. Nakonfigurujte server(y) repliky ve FBDataGuard.
  4. Spusťte repliku(y) před masterem.
  5. Nakonfigurujte master, poté spusťte master.

Více prostojů než async: replika musí být online před spuštěním mastera. Příklad vzdálené repliky: server replicaserver, cesta /data/test2.fdb. Na replice stačí gfix -replica {master-guid} kromě té kopie.

Synchronous replication configuration

Testování v produkčním systému

Nastavte disable_on_error na true, aby chyba replikace vypnula replikaci a master pokračoval v obsluze. Po opravě chyby znovu inicializujte z čistého logu. Povolte úlohu Replication log ve FBDataGuard pro chyby a varování.

disable_on_error true for replication testing
Replication log monitoring job in HQbird

Vytvoření kopie repliky pomocí nbackup

Funguje online pro async (a další repliky) bez zastavení mastera. Nebo zastavte Firebird a zkopírujte soubor.

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 je jedinečné ID mastera z gstat -h. Pokud chybí, připojte se jednou s binárkami HQbird Firebird a spusťte gstat -h znovu.

gstat -h showing Database GUID
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey

Prázdné {} vrátí soubor do normálního (čtení/zápis) režimu. Na replice můžete provádět práci pouze pro čtení (SELECT); neměňte data ani metadata.