在过去的 2 年里,我们一直在使用DRBD/Heartbeat/Pacemaker解决方案来解决完全相同的问题。保持 Firebird 数据库正常运行和故障转移。设置实际上非常简单,我有一些建议可以让您抢先一步。所以这些只是建议......
- 创建一个drbd分区,对其进行格式化并将其挂载到/data(当然使用起搏器)
- 将您的aliases.conf放入drbd 分区,这样您就不必每次更改 aliases.conf 两次。将 aliases.conf 文件复制到 /data 并将其链接到两个节点上的 /etc/firebird/2.1/aliases.conf
在 Primary/Secondary 设置中使用 Drbd/Pacemaker的缺点是,一旦主节点死亡,客户端就会断开连接,直到辅助节点启动。将不得不重新连接。我还没有真正找到另一种解决方法,尽管 firebird 客户端应该允许连接超时,但它从未真正与我们的应用程序一起使用(也许我们使用的应用程序或库并没有真正使用 firebird 连接超时)。
至于数据库复制,恐怕您必须按照 Hugues Van Landeghem 所描述或引用的方式进行。我们开发了这样一个与触发器一起工作的应用程序。因此,向表中添加了新行,触发器将条目的键复制到另一个表中,该表由应用程序不断读取,该应用程序获取该条目并将其插入另一个数据库。相当丑陋,但它工作得很好!我个人认为 Firebird 应该投入一些时间来拥有自己的数据库复制系统......他们真的远远落后......
希望我的信息对您有所帮助。我还有其他问题,请随时与我联系或访问我的网站@ gefoo.org