Каково ваше мнение о DRBD/Heartbeat для репликации и отработки отказа для СУБД Firebird?
Я изучаю возможность использования Firebird для проекта.
Однако одной потенциальной проблемой является репликация и отработка отказа, или, скорее, отсутствие (субъективного) "хорошего" решения. Есть несколько потенциальных решений, перечисленных в FAQ Firebird, но они 1) ориентированы на Windows; 2) ужасно устаревший; 3) коммерческий; или 4) не полнофункциональный.
Единственный потенциальный вариант, который я вижу, это ВОЛОКНА, и это выглядит 1) незрелым; 2) потенциально мертвый; и 3) не полнофункциональный.
Я узнал о DRBD и Heartbeat, и эти решения выглядят многообещающе. Жду ваших отзывов, если у вас уже есть 1) настройка реплицированной конфигурации Firebird; и / или 2) использовал DRBD с Firebird.
Какие-нибудь "ошибки", рекомендации, советы и т. Д.?
Спасибо!
2 ответа
В Firebird Conference 2009 есть одна сессия о репликации
Хольгер Клемт
* Firebird Replicated Part 1 * Firebird Replicated Part 2 o In this two sessions you will see how easy it is to implement
Ваша собственная система репликации в базе данных Firebird. На основе триггеров и простых сценариев вы можете создать оперативную систему резервного копирования. Архитектура допускает репликацию master-master, master-slave, multi-master, онлайн и офлайн. Реплицированный кластер Firebird может использоваться любым клиентом без перерыва, также в случае частичных сбоев оборудования, запланированных операций по обслуживанию оборудования и программного обеспечения, например, при переходе на новую версию Firebird.
Последние два года мы использовали DRBD / Heartbeat / Pacemaker Solution для решения точно такой же проблемы. Поддержание работы баз данных Firebird и отработки отказа. Настройка на самом деле довольно проста, и у меня есть несколько советов, которые я дам вам для начала. Так что это всего лишь предложения...
- создать раздел drbd, отформатировать его и смонтировать в /data (конечно, с кардиостимулятором)
- поместите ваш aliases.conf в раздел drbd, чтобы вам не приходилось менять aliases.conf дважды каждый раз, когда вы вносите в него изменения. Скопируйте файл aliases.conf в /data и свяжите его с /etc/firebird/2.1/aliases.conf на обоих узлах
Недостатком использования Drbd/Pacemaker в первичной / вторичной настройке является то, что клиенты теряют соединение, как только основной узел умирает, и до тех пор, пока вторичный узел не будет задействован. Придется переподключаться. Я не нашел другого способа обойти это, хотя клиент firebird должен разрешать тайм-аут соединения, он никогда не работал с нашими приложениями (возможно, приложения или библиотеки, которые мы используем, на самом деле не используют тайм-аут соединения firebird).
Что касается репликации базы данных, я боюсь, что вы должны пойти по пути, который Хьюг Ван Ландегем описал или процитировал. Мы разработали такое приложение, которое работает с триггерами. Таким образом, новая строка добавляется в таблицу, триггер копирует ключ записи в другую таблицу, которая постоянно читается приложением, которое захватывает эту запись и вставляет ее в другую базу данных. Довольно некрасиво, но работает просто отлично! Я лично считаю, что Firebird следует потратить некоторое время на создание собственной системы репликации базы данных... они действительно сильно отстают...
Надеюсь, моя информация немного помогла вам. У меня есть дополнительные вопросы, не стесняйтесь связаться со мной или посетите мой сайт @ http://www.gefoo.org/