HQbird Replication
Replica nativa master-slave in HQbird Enterprise: DML e DDL, senza trigger, chiavi uniche o primarie sulle tabelle replicate. 100% compatibile con Firebird 2.5-5.0 - cambia i binari senza backup/restore. Una licenza copre un master e una replica; repliche aggiuntive sono vendute separatamente.
Asincrona vs sincrona
L'asincrona è di solito la scelta giusta per la produzione.
Asincrona (consigliata)
Il master registra le modifiche committate in file di segmento; le repliche li scaricano e li applicano in background. Il flush predefinito è di 90 secondi (spesso impostato a 15-30). La replica può essere ricreata online; nessuna interruzione del master per avviare. Adatta per cloud o collegamenti ad alta latenza. Il ritardo può crescere sotto carico elevato.
Sincrona
Il master scrive le modifiche committate direttamente alle repliche. Ritardo ~1-2 secondi; richiede un percorso stabile di ~1 Gbps. La replica è in sola lettura (con avvertenze). Ricreare una replica richiede l'arresto del master. Usala per failover personalizzato (3+ nodi), scarico delle letture o in combinazione con l'asincrona.
Installazione
Installa HQbird Server con Firebird su master e replica. Windows: HQbirdServer2024.exe (2.5-5.0). Gli strumenti di amministrazione sono opzionali per la replica. Linux: guida all'installazione. Registrati con una licenza di prova o completa. La Guida Utente §2 copre la configurazione del server.
Firebird 2.5: HQbird installa SuperClassic. Se l'header del database ha un conteggio elevato di page buffer, le prestazioni possono risentirne. Imposta i buffer a 0 così firebird.conf vince:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb
Passaggi - replica asincrona
- Configura il database come master.
- Crea un file di replica (
nbackupo "Reinizializza database replica"). - Configura il server replica.
Passaggio 1 - Master
Apri http://127.0.0.1:8082 (la porta è configurabile). Accedi con admin / password forte. Conferma che il widget Active server mostri Firebird 2.5/3.0/4.0/5.0 HQbird.
Aggiungi database: nickname più percorso file, non un alias - gli alias non vengono replicati.
Apri la replica dall'icona dell'header del database. Scegli Master → Asincrona → Salva. Riavvia Firebird (o tutte le connessioni Classic) così i parametri vengono caricati alla prima connessione.
- Directory log - segmenti operativi, predefinita
${db.default-directory}\ReplicationLog. Gestita dal motore; lasciala. - Directory archivio log - segmenti archiviati, predefinita
${db.path}.LogArchaccanto al database. - Override comando archivio log - lascia vuoto.
- Forza flush dei dati committati - predefinito 90 secondi.
Dovresti vedere file rotanti nella directory log subito dopo le scritture, poi segmenti archiviati dopo il commit/timeout. Non toccare i segmenti operativi. Copiare gli archivi sulla replica: condivisione di rete o FTP/SSH.
Passaggio 2 - File di replica iniziale
Da HQbird 2018 R2, Reinizializza database replica crea una copia accanto al master, denominata come employee30.fdb.17-Apr-2018_142507.4replica. Oppure usa nbackup senza fermare il master.
Passaggio 3 - Server replica
Registra la replica in FBDataGuard dopo che ha un GUID di replica. L'impostazione richiesta è la cartella dei segmenti archiviati. Salva e riavvia Firebird. I valori predefiniti vengono importati da una cartella accanto alla replica; i segmenti elaborati vengono eliminati. Non mescolare archivi di database diversi in una cartella.
Passaggi - replica sincrona
- Ferma Firebird.
- Copia il file master, passalo in modalità replica, copialo sul/i server replica.
- Configura il/i server replica in FBDataGuard.
- Avvia le repliche prima del master.
- Configura il master, poi avvia il master.
Più downtime rispetto all'asincrona: la replica deve essere online prima che il master si avvii. Esempio di replica remota: server replicaserver, percorso /data/test2.fdb. Sulla replica, gfix -replica {master-guid} è sufficiente oltre a quella copia.
Test su un sistema di produzione
Imposta disable_on_error su true così un errore di replica disattiva la replica e il master continua a servire. Re-inizializza da un log pulito dopo aver corretto l'errore. Abilita il job Log di replica in FBDataGuard per errori e avvisi.
Crea una copia di replica con nbackup
Funziona online per l'asincrona (e repliche extra) senza fermare il master. Oppure ferma Firebird e copia il file.
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 è l'id univoco del master da gstat -h. Se manca, connettiti una volta con i binari Firebird di HQbird ed esegui di nuovo gstat -h.
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
Le parentesi vuote {} riportano il file alla modalità normale (lettura-scrittura). Su una replica puoi eseguire lavoro in sola lettura (SELECT); non modificare dati o metadati.