HQbird Реплікація
Нативна реплікація «майстер-репліка» у HQbird Enterprise: DML та DDL, без тригерів, унікальні або первинні ключі на реплікованих таблицях. 100% сумісність із Firebird 2.5-5.0 - зміна бінарних файлів без резервного копіювання та відновлення. Одна ліцензія покриває один майстер і одну репліку; додаткові репліки продаються окремо.
Асинхронна та синхронна
Асинхронна зазвичай є правильним вибором для продакшену.
Асинхронна (рекомендована)
Майстер журналює зафіксовані зміни у файли сегментів; репліки отримують і застосовують їх у фоновому режимі. За замовчуванням скидання - 90 секунд (часто встановлюють 15-30). Репліку можна перестворити онлайн; для запуску не потрібно зупиняти майстер. Підходить для хмари або з’єднань із високою затримкою. Затримка може зростати за великого навантаження.
Синхронна
Майстер записує зафіксовані зміни безпосередньо на репліку(и). Затримка ~1-2 секунди; потрібен стабільний канал ~1 Гбіт/с. Репліка доступна лише для читання (з певними застереженнями). Перестворення репліки вимагає зупинки майстра. Використовуйте для власного відмовостійкого рішення (3+ вузли), розвантаження читання або в поєднанні з асинхронною.
Встановлення
Встановіть HQbird Server із Firebird на майстрі та репліці. Windows: HQbirdServer2024.exe (2.5-5.0). Адміністративні інструменти необов’язкові для реплікації. Linux: посібник із встановлення. Зареєструйтеся з пробною або повною ліцензією. Посібник користувача §2 охоплює налаштування сервера.
Firebird 2.5: HQbird встановлює SuperClassic. Якщо заголовок бази даних має велику кількість буферів сторінок, продуктивність може постраждати. Встановіть буфери на 0, щоб firebird.conf мав пріоритет:
gfix -buff 0 -user SYSDBA -pass masterkey disk:\path\database.fdb
Кроки - асинхронна реплікація
- Налаштуйте базу даних як майстер.
- Створіть файл репліки (
nbackupабо «Reinitialize replica database»). - Налаштуйте сервер репліки.
Крок 1 - Майстер
Відкрийте http://127.0.0.1:8082 (порт налаштовується). Увійдіть admin / надійний пароль. Переконайтеся, що віджет Active server показує Firebird 2.5/3.0/4.0/5.0 HQbird.
Додайте базу даних: псевдонім плюс шлях до файлу, а не аліас - аліаси не реплікуються.
Відкрийте реплікацію з іконки заголовка бази даних. Виберіть Master → Asynchronous → Save. Перезапустіть 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 створює копію поруч із майстром, названу як employee30.fdb.17-Apr-2018_142507.4replica. Або використовуйте nbackup без зупинки майстра.
Крок 3 - Сервер репліки
Зареєструйте репліку у FBDataGuard після того, як вона отримає 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 і запустіть gstat -h знову.
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey
Порожні {} повертають файл у звичайний режим (читання-запис). На репліці можна виконувати роботу лише для читання (SELECT); не змінюйте дані або метадані.