HQbird репликација
Изворна master-slave репликација у HQbird Enterprise: DML и DDL, без тригера, јединствени или примарни кључеви на реплицираним табелама. 100% компатибилно са Firebird 2.5-5.0 - промените бинарне датотеке без backup/restore. Једна лиценца покрива један master и једну реплику; додатне реплике се продају посебно.
Асинхроно наспрам синхроног
Асинхроно је обично прави избор за продукцију.
Асинхроно (препоручено)
Master бележи потврђене измене у сегментне датотеке; реплике их повлаче и примењују у позадини. Подразумевано испирање је 90 секунди (често се поставља на 15-30). Реплика се може поново креирати на мрежи; није потребно заустављање master-а за почетак. Погодно за облак или линкове са високим кашњењем. Кашњење може да расте под великим оптерећењем.
Синхроно
Master уписује потврђене измене директно на реплику(е). Кашњење ~1-2 секунде; потребна је стабилна ~1 Gbps путања. Реплика је само за читање (са напоменама). Поновно креирање реплике захтева заустављање master-а. Користите за прилагођени failover (3+ чвора), преусмеравање читања или у комбинацији са асинхроним.
Инсталација
Инсталирајте HQbird Server са Firebird-ом на master-у и реплици. Windows: HQbirdServer2024.exe (2.5-5.0). Административни алати су опциони за репликацију. Linux: водич за инсталацију. Региструјте се са пробном или пуном лиценцом. Кориснички водич §2 покрива подешавање сервера.
Firebird 2.5: HQbird инсталира SuperClassic. Ако заглавље базе података има велики број page-buffer-а, перформансе могу да пате. Поставите buffere на 0 тако да firebird.conf има предност:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb
Кораци - асинхрона репликација
- Конфигуришите базу података као master.
- Креирајте датотеку реплике (
nbackupили „Reinitialize replica database“). - Конфигуришите сервер реплике.
Корак 1 - Master
Отворите http://127.0.0.1:8082 (порт је подесив). Пријавите се са admin / јаком лозинком. Потврдите да Active server widget приказује Firebird 2.5/3.0/4.0/5.0 HQbird.
Додајте базу података: надимак плус путања до датотеке, не алијас - алијаси се не реплицирају.
Отворите репликацију преко иконе заглавља базе података. Изаберите Master → Асинхроно → Сачувај. Поново покрените Firebird (или све Classic везе) да би се параметри учитали при првом повезивању.
- Log directory - оперативни сегменти, подразумевано
${db.default-directory}\ReplicationLog. Управља га мотор; оставите га. - Log archive directory - архивирани сегменти, подразумевано
${db.path}.LogArchпоред базе података. - Override log archive command - оставите празно.
- Force flush committed data - подразумевано 90 секунди.
Требало би да видите ротирајуће датотеке у директоријуму за евиденцију одмах након уписа, а затим архивиране сегменте након потврде/истека времена. Не дирајте оперативне сегменте. Копирање архива на реплику: мрежна дељена фасцикла или FTP/SSH.
Корак 2 - Почетна датотека реплике
Од HQbird 2018 R2, Reinitialize replica database гради копију поред master-а, названу као employee30.fdb.17-Apr-2018_142507.4replica. Или користите nbackup без заустављања master-а.
Корак 3 - Сервер реплике
Региструјте реплику у FBDataGuard-у након што добије replica GUID. Потребно подешавање је фасцикла архивираних сегмената. Сачувајте и поново покрените Firebird. Подразумеване вредности се увозе из фасцикле поред реплике; обрађени сегменти се бришу. Немојте мешати архиве из различитих база података у једној фасцикли.
Кораци - синхрона репликација
- Зауставите Firebird.
- Копирајте главну датотеку, пребаците је у режим реплике, копирајте на сервер(е) реплике.
- Подесите сервер(е) реплике у FBDataGuard-у.
- Покрените реплике пре главног сервера.
- Подесите главни сервер, затим покрените главни сервер.
Више застоја него код асинхроне: реплика мора бити онлајн пре него што главни сервер почне. Пример удаљене реплике: сервер replicaserver, путања /data/test2.fdb. На реплици је gfix -replica {master-guid} довољно осим те копије.
Тестирање на продукционом систему
Подесите disable_on_error на true тако да грешка репликације искључи репликацију, а главни сервер настави да ради. Поново иницијализујте из чистог дневника након што поправите грешку. Омогућите задатак Replication log у FBDataGuard-у за грешке и упозорења.
Направите копију реплике помоћу nbackup-а
Ради онлајн за асинхрону (и додатне реплике) без заустављања главног сервера. Или зауставите Firebird и копирајте датотеку.
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 је јединствени идентификатор главног сервера из gstat -h. Ако недостаје, повежите се једном помоћу HQbird-ових Firebird бинарних датотека и поново покрените gstat -h.
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
Празно {} враћа датотеку у нормалан (читај-пиши) режим. На реплици можете обављати само операције читања (SELECT); немојте мењати податке или метаподатке.