Цю сторінку перекладено машинним перекладом. Читайте англійський оригінал. English

Нативна реплікація «майстер-репліка» у HQbird Enterprise: DML та DDL, без тригерів, унікальні або первинні ключі на реплікованих таблицях. 100% сумісність із Firebird 2.5-5.0 - зміна бінарних файлів без резервного копіювання та відновлення. Одна ліцензія покриває один майстер і одну репліку; додаткові репліки продаються окремо.

Асинхронна та синхронна

Асинхронна зазвичай є правильним вибором для продакшену.

Асинхронна (рекомендована)

Майстер журналює зафіксовані зміни у файли сегментів; репліки отримують і застосовують їх у фоновому режимі. За замовчуванням скидання - 90 секунд (часто встановлюють 15-30). Репліку можна перестворити онлайн; для запуску не потрібно зупиняти майстер. Підходить для хмари або з’єднань із високою затримкою. Затримка може зростати за великого навантаження.

Синхронна

Майстер записує зафіксовані зміни безпосередньо на репліку(и). Затримка ~1-2 секунди; потрібен стабільний канал ~1 Гбіт/с. Репліка доступна лише для читання (з певними застереженнями). Перестворення репліки вимагає зупинки майстра. Використовуйте для власного відмовостійкого рішення (3+ вузли), розвантаження читання або в поєднанні з асинхронною.

Асинхронна реплікація Firebird: журнальні сегменти від майстра до репліки
Асинхронна: сегменти на диску, застосовуються у фоновому режимі.
Синхронна реплікація Firebird: майстер записує безпосередньо на репліку
Синхронна: пакети під час фіксації через активне з’єднання.

Встановлення

Встановіть 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

Кроки - асинхронна реплікація

  1. Налаштуйте базу даних як майстер.
  2. Створіть файл репліки (nbackup або «Reinitialize replica database»).
  3. Налаштуйте сервер репліки.

Крок 1 - Майстер

Відкрийте http://127.0.0.1:8082 (порт налаштовується). Увійдіть admin / надійний пароль. Переконайтеся, що віджет Active server показує Firebird 2.5/3.0/4.0/5.0 HQbird.

Консоль HQbird готова додати базу даних для реплікації

Додайте базу даних: псевдонім плюс шлях до файлу, а не аліас - аліаси не реплікуються.

Діалог додавання бази даних із явним шляхом до файлу

Відкрийте реплікацію з іконки заголовка бази даних. Виберіть MasterAsynchronous → Save. Перезапустіть Firebird (або всі з’єднання Classic), щоб параметри завантажилися під час першого підключення.

Базові налаштування асинхронної реплікації майстра
Базове налаштування майстра.
Повні параметри асинхронної реплікації майстра
More >> - значення за замовчуванням підходять для чистого встановлення.
  • 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. Значення за замовчуванням імпортуються з папки поруч із реплікою; оброблені сегменти видаляються. Не змішуйте архіви з різних баз даних в одній папці.

Базові налаштування асинхронної репліки
Детальні налаштування асинхронної репліки

Кроки - синхронна реплікація

  1. Зупиніть Firebird.
  2. Скопіюйте файл майстра, перемкніть його в режим репліки, скопіюйте на сервер(и) репліки.
  3. Налаштуйте сервер(и) репліки у FBDataGuard.
  4. Запустіть репліку(и) до майстра.
  5. Налаштуйте майстра, потім запустіть майстра.

Більше простою, ніж при асинхронній реплікації: репліка має бути онлайн до запуску майстра. Приклад віддаленої репліки: сервер replicaserver, шлях /data/test2.fdb. На репліці, окрім копіювання, достатньо gfix -replica {master-guid}.

Конфігурація синхронної реплікації

Тестування на виробничій системі

Встановіть disable_on_error у true, щоб помилка реплікації вимикала реплікацію, а майстер продовжував працювати. Після виправлення помилки повторно ініціалізуйте з чистого журналу. Увімкніть завдання Replication log у FBDataGuard для відстеження помилок і попереджень.

disable_on_error true для тестування реплікації
Завдання моніторингу журналу реплікації у HQbird

Створення копії репліки за допомогою 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 знову.

gstat -h показує GUID бази даних
gfix disk:\path\mydatabase.fdb -replica {guid} -user SYSDBA -pass masterkey
gfix disk:\path\mydatabase.fdb -replica {} -user SYSDBA -pass masterkey

Порожні {} повертають файл у звичайний режим (читання-запис). На репліці можна виконувати роботу лише для читання (SELECT); не змінюйте дані або метадані.