HQbird Replication
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.
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
- Nakonfigurujte databázi jako master.
- Vytvořte soubor repliky (
nbackupnebo „Reinitialize replica database“). - 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.
Přidejte databázi: přezdívku plus cestu k souboru, ne alias - aliasy se nereplikují.
Otevřete replikaci z ikony hlavičky databáze. Zvolte Master → Asynchronous → Uložit. Restartujte Firebird (nebo všechna Classic připojení), aby se parametry načetly při prvním připojení.
- Log directory - provozní segmenty, výchozí
${db.default-directory}\ReplicationLog. Spravuje engine; ponechte. - Log archive directory - archivované segmenty, výchozí
${db.path}.LogArchvedle 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.
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.
Kroky - synchronní replikace
- Zastavte Firebird.
- Zkopírujte soubor mastera, přepněte jej do režimu repliky, zkopírujte na server(y) repliky.
- Nakonfigurujte server(y) repliky ve FBDataGuard.
- Spusťte repliku(y) před masterem.
- 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.
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í.
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.
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.