2009-10-26 63 views
4

我正在研究为项目使用Firebird的可能性。对于Firebird RDBMS的复制和故障转移,您对DRBD/Heartbeat有何看法?

但是,一个潜在的问题是复制和故障转移,或者说,缺少(主观的)“良好”解决方案。 Firebird FAQ中列出了几种可能的解决方案,但它们是1)以Windows为中心的; 2)可怕的过时; 3)商业;或4)功能不全。

我看到的唯一潜在选择是FIBER,看起来1)不成熟; 2)可能死亡; 3)功能不全。

我已经了解了DRBD和心跳,这些解决方案看起来很有前途。我正在寻找您的反馈,如果您已经有1)设置复制Firebird配置;和/或2)与Firebird一起使用DRBD。

任何“陷阱”,建议,提示等?

谢谢!

回答

3

有一个关于复制在 Firebird数据库一个会议Firebird Conference 2009

霍尔格Klemt

* Firebird Replicated Part 1 
* Firebird Replicated Part 2 
     o In this two sessions you will see how easy it is to implement 

自己的复制系统。基于触发器 和简单脚本,您可以创建一个 实时备份系统。架构 允许主 - 主,主 - 从, 多主,在线和离线 复制。复制火鸟 集群可以由任何客户 使用而不interuption,还在外壳的部分的硬件故障 ,计划 硬件和软件维护 操作,例如切换到 新火鸟版本。

3

我们一直在使用DRBD /心跳/起搏器解决方案在过去的2年完全一样的问题。保持Firebird数据库正常运行并进行故障转移。该设置实际上非常简单,我有几个建议,我会给你一个良好的开端。所以这些都只是建议...

  • 创建DRBD分区,格式化它,将其安装到/数据(当然是有心脏起搏器)
  • 把你aliases.confdrbd分区,因此每次更改aliases.conf时都不必更改两次。复制aliases.conf文件/数据并将其链接到/etc/firebird/2.1/aliases.conf两个节点

下行上的在a主/副设定使用DRBD /起搏器是该一旦主节点死亡并且直到次节点启动,客户端将丢失连接。必须重新连接。虽然firebird客户端应该允许连接超时,但它从来没有真正与我们的应用程序一起工作(可能应用程序或我们使用的库并不真正使用firebird连接超时),但我还没有真正找到另一种方法。

至于数据库复制,恐怕你必须像Hugues Van Landeghem所描述或引用的那样去做。我们开发了这样一个应用程序,它与触发器一起工作。因此,将新行添加到表中,触发器将条目的关键字复制到另一个表,该表通过抓取该条目并将其插入另一个数据库的应用程序不断读取。很丑但它工作得很好!我个人认为Firebird应该投入一些时间来拥有自己的数据库复制系统......他们真的远远落后于......

希望我的信息能帮助你一点点。我有进一步的问题随时与我联系或访问我的网站@gefoo.org