Мы использовали DRBD / Heartbeat / Pacemaker Решение за последние 2 года для точно такой же проблемы. Поддерживать работу баз данных Firebird и аварийное переключение. Настройка на самом деле довольно проста, и у меня есть несколько советов, которые я дам вам для начала. Так что это всего лишь предложения ...
- создайте drbd раздел, отформатируйте его и смонтируйте в / data (с кардиостимулятором, конечно)
- поместите ваш aliases.conf в drbd partion , чтобы вам не приходилось менять aliases.conf дважды каждый раз, когда вы вносите в него изменения. Скопируйте файл aliases.conf в / data и свяжите его с /etc/firebird/2.1/aliases.conf на обоих узлах
Недостаток использования Drbd / Pacemaker в первичной / вторичной конфигурации заключается в том, что клиенты потеряют соединение , как только основной узел умрет и пока вторичный узел не работает. Придется переподключаться. Я действительно не нашел другого способа обойти это, хотя клиент firebird должен разрешать тайм-аут соединения, он никогда не работал с нашими приложениями (возможно, приложения или библиотеки, которые мы используем, на самом деле не используют тайм-аут соединения firebird).
Что касается репликации базы данных, я боюсь, что вы должны пойти по пути, который Хьюг Ван Ландегем описал или процитировал. Мы разработали такое приложение, которое работает с триггерами. Таким образом, новая строка добавляется в таблицу, триггер копирует ключ записи в другую таблицу, которая постоянно читается приложением, которое захватывает эту запись и вставляет ее в другую базу данных. Довольно некрасиво, но работает просто отлично! Я лично считаю, что Firebird следует потратить некоторое время на создание собственной системы репликации базы данных ... они действительно сильно отстают ...
Надеюсь, моя информация немного помогла вам. У меня есть дополнительные вопросы, не стесняйтесь связаться со мной или посетить мой сайт @ gefoo.org