HQbird Réplication
Réplication native maître-esclave dans HQbird Enterprise : DML et DDL, sans déclencheurs, clés uniques ou primaires sur les tables répliquées. 100 % compatible Firebird 2.5-5.0 - changez les binaires sans sauvegarde/restauration. Une licence couvre un maître et une réplique ; les répliques supplémentaires sont vendues séparément.
Asynchrone vs synchrone
L'asynchrone est généralement le bon choix en production.
Asynchrone (recommandé)
Le maître journalise les modifications validées dans des fichiers de segments ; les répliques les récupèrent et les appliquent en arrière-plan. Le vidage par défaut est de 90 secondes (souvent réglé à 15-30). La réplique peut être recréée en ligne ; aucun arrêt du maître pour démarrer. Idéal pour le cloud ou les liaisons à haute latence. Le délai peut augmenter sous forte charge.
Synchrone
Le maître écrit les modifications validées directement sur la ou les répliques. Délai ~1-2 secondes ; nécessite un chemin stable d'environ 1 Gbps. La réplique est en lecture seule (avec certaines réserves). La recréation d'une réplique nécessite l'arrêt du maître. Utilisez-le pour un basculement personnalisé (3+ nœuds), le déchargement des lectures ou en combinaison avec l'asynchrone.
Installation
Installez HQbird Server avec Firebird sur le maître et la réplique. Windows : HQbirdServer2024.exe (2.5-5.0). Les outils d'administration sont facultatifs pour la réplication. Linux : guide d'installation. Enregistrez avec une licence d'essai ou complète. Le Guide de l'utilisateur §2 couvre la configuration du serveur.
Firebird 2.5 : HQbird installe SuperClassic. Si l'en-tête de la base de données a un nombre élevé de tampons de pages, les performances peuvent en souffrir. Réglez les tampons à 0 pour que firebird.conf prévale :
gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb
Étapes - réplication asynchrone
- Configurez la base de données comme maître.
- Créez un fichier de réplique (
nbackupou « Réinitialiser la base de données de réplique »). - Configurez le serveur de réplique.
Étape 1 - Maître
Ouvrez http://127.0.0.1:8082 (le port est configurable). Connectez-vous avec admin / mot de passe fort. Confirmez que le widget Serveur actif affiche Firebird 2.5/3.0/4.0/5.0 HQbird.
Ajoutez la base de données : surnom plus chemin de fichier, pas un alias - les alias ne se répliquent pas.
Ouvrez la réplication à partir de l'icône d'en-tête de la base de données. Choisissez Maître → Asynchrone → Enregistrer. Redémarrez Firebird (ou toutes les connexions Classic) pour que les paramètres se chargent à la première connexion.
- Répertoire des journaux - segments opérationnels, par défaut
${db.default-directory}\ReplicationLog. Géré par le moteur ; laissez-le. - Répertoire d'archivage des journaux - segments archivés, par défaut
${db.path}.LogArchà côté de la base de données. - Remplacer la commande d'archivage des journaux - laissez vide.
- Forcer le vidage des données validées - 90 secondes par défaut.
Vous devriez voir des fichiers en rotation dans le répertoire des journaux immédiatement après les écritures, puis des segments archivés après la validation/délai d'attente. Ne touchez pas aux segments opérationnels. Copie des archives vers la réplique : partage réseau ou FTP/SSH.
Étape 2 - Fichier de réplique initial
Depuis HQbird 2018 R2, Réinitialiser la base de données de réplique crée une copie à côté du maître, nommée comme employee30.fdb.17-Apr-2018_142507.4replica. Ou utilisez nbackup sans arrêter le maître.
Étape 3 - Serveur de réplique
Enregistrez la réplique dans FBDataGuard après qu'elle ait un GUID de réplique. Le paramètre requis est le dossier des segments archivés. Enregistrez et redémarrez Firebird. Les valeurs par défaut sont importées depuis un dossier à côté de la réplique ; les segments traités sont supprimés. Ne mélangez pas les archives de différentes bases de données dans un même dossier.
Étapes - réplication synchrone
- Arrêtez Firebird.
- Copiez le fichier maître, passez-le en mode réplique, copiez-le sur le(s) serveur(s) de réplique.
- Configurez le(s) serveur(s) de réplique dans FBDataGuard.
- Démarrez la ou les répliques avant le maître.
- Configurez le maître, puis démarrez le maître.
Plus de temps d'arrêt que l'asynchrone : la réplique doit être en ligne avant le démarrage du maître. Exemple de réplique distante : serveur replicaserver, chemin /data/test2.fdb. Sur la réplique, gfix -replica {master-guid} suffit en plus de cette copie.
Tests sur un système de production
Réglez disable_on_error sur true pour qu'une erreur de réplication désactive la réplication et que le maître continue de servir. Réinitialisez à partir d'un journal propre après avoir corrigé l'erreur. Activez le travail Journal de réplication dans FBDataGuard pour les erreurs et avertissements.
Créer une copie de réplique avec nbackup
Fonctionne en ligne pour l'asynchrone (et les répliques supplémentaires) sans arrêter le maître. Ou arrêtez Firebird et copiez le fichier.
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 est l'identifiant unique du maître provenant de gstat -h. S'il manque, connectez-vous une fois avec les binaires Firebird de HQbird et exécutez à nouveau gstat -h.
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
Des {} vides ramènent le fichier en mode normal (lecture-écriture). Sur une réplique, vous pouvez effectuer des travaux en lecture seule (SELECT) ; ne modifiez pas les données ou les métadonnées.