HQbird Replication
Replicación nativa maestro-esclavo en HQbird Enterprise: DML y DDL, sin disparadores, claves únicas o primarias en tablas replicadas. 100% compatible con Firebird 2.5-5.0 - cambie los binarios sin copia de seguridad/restauración. Una licencia cubre un maestro y una réplica; las réplicas adicionales se venden por separado.
Asíncrono vs síncrono
El modo asíncrono suele ser la elección correcta para producción.
Asíncrono (recomendado)
El maestro registra los cambios confirmados en archivos de segmento; las réplicas los extraen y aplican en segundo plano. El vaciado predeterminado es de 90 segundos (a menudo se establece en 15-30). La réplica se puede recrear en línea; no es necesario detener el maestro para comenzar. Adecuado para la nube o enlaces de alta latencia. El retraso puede aumentar bajo carga pesada.
Síncrono
El maestro escribe los cambios confirmados directamente en la(s) réplica(s). Retraso de ~1-2 segundos; necesita una ruta estable de ~1 Gbps. La réplica es de solo lectura (con salvedades). Recrear una réplica requiere detener el maestro. Úselo para conmutación por error personalizada (3+ nodos), descarga de lecturas o combinado con asíncrono.
Instalación
Instale HQbird Server con Firebird en el maestro y la réplica. Windows: HQbirdServer2024.exe (2.5-5.0). Las herramientas de administración son opcionales para la replicación. Linux: guía de instalación. Regístrese con una licencia de prueba o completa. La Guía del usuario §2 cubre la configuración del servidor.
Firebird 2.5: HQbird instala SuperClassic. Si el encabezado de la base de datos tiene un recuento grande de búfer de páginas, el rendimiento puede verse afectado. Establezca los búferes en 0 para que firebird.conf tenga prioridad:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb
Pasos - replicación asíncrona
- Configure la base de datos como maestro.
- Cree un archivo de réplica (
nbackupo "Reinicializar base de datos de réplica"). - Configure el servidor de réplica.
Paso 1 - Maestro
Abra http://127.0.0.1:8082 (el puerto es configurable). Inicie sesión con admin / contraseña segura. Confirme que el widget Servidor activo muestra Firebird 2.5/3.0/4.0/5.0 HQbird.
Agregue la base de datos: apodo más ruta de archivo, no un alias - los alias no se replican.
Abra la replicación desde el icono del encabezado de la base de datos. Elija Maestro → Asíncrono → Guardar. Reinicie Firebird (o todas las conexiones Classic) para que los parámetros se carguen en la primera conexión.
- Directorio de registro - segmentos operativos, predeterminado
${db.default-directory}\ReplicationLog. Gestionado por el motor; déjelo. - Directorio de archivo de registro - segmentos archivados, predeterminado
${db.path}.LogArchjunto a la base de datos. - Anular comando de archivo de registro - déjelo vacío.
- Forzar vaciado de datos confirmados - predeterminado 90 segundos.
Debería ver archivos rotativos en el directorio de registro inmediatamente después de las escrituras, y luego segmentos archivados después de la confirmación/tiempo de espera. No toque los segmentos operativos. Copiar archivos a la réplica: recurso compartido de red o FTP/SSH.
Paso 2 - Archivo de réplica inicial
Desde HQbird 2018 R2, Reinicializar base de datos de réplica crea una copia junto al maestro, con nombre como employee30.fdb.17-Apr-2018_142507.4replica. O use nbackup sin detener el maestro.
Paso 3 - Servidor de réplica
Registre la réplica en FBDataGuard después de que tenga un GUID de réplica. El ajuste requerido es la carpeta de segmentos archivados. Guarde y reinicie Firebird. Los valores predeterminados se importan de una carpeta junto a la réplica; los segmentos procesados se eliminan. No mezcle archivos de diferentes bases de datos en una carpeta.
Pasos - replicación síncrona
- Detenga Firebird.
- Copie el archivo maestro, cámbielo a modo réplica, cópielo en el(los) servidor(es) de réplica.
- Configure el(los) servidor(es) de réplica en FBDataGuard.
- Inicie la(s) réplica(s) antes que el maestro.
- Configure el maestro y luego inícielo.
Más tiempo de inactividad que asíncrono: la réplica debe estar en línea antes de que el maestro se inicie. Ejemplo de réplica remota: servidor replicaserver, ruta /data/test2.fdb. En la réplica, gfix -replica {master-guid} es suficiente además de esa copia.
Pruebas en un sistema de producción
Establezca disable_on_error en true para que un error de replicación desactive la replicación y el maestro siga sirviendo. Reinicialice desde un registro limpio después de corregir el error. Habilite el trabajo Registro de replicación en FBDataGuard para errores y advertencias.
Crear una copia de réplica con nbackup
Funciona en línea para asíncrono (y réplicas adicionales) sin detener el maestro. O detenga Firebird y copie el archivo.
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 es el identificador único del maestro de gstat -h. Si falta, conéctese una vez con los binarios de Firebird de HQbird y ejecute gstat -h nuevamente.
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
Un {} vacío devuelve el archivo al modo normal (lectura-escritura). En una réplica puede realizar trabajo de solo lectura (SELECT); no cambie datos ni metadatos.