对DB的故障转移支持

时间:2011-06-10 10:15:08

标签: mysql postgresql replication hsqldb cluster-computing

我们目前正在评估不同数据库中的故障转移支持 我们之前使用的是HSQLDB,但它似乎没有群集/复制支持。

我们的要求只是拥有两个数据库服务器,一个仅用于同步备份,但如果主服务器已关闭,则辅助服务器应自动开始充当主服务器。

有没有人为这样的用例评估MySQL,PostgreSQL或任何其他数据库服务器?

编辑:我们曾考虑使用MySQL集群,但现在看来它是GPL许可证,我们将无法使用它。有人可以建议一个可以使用的同步复制/集群解决方案吗?我们目前正在使用HSQL,因此在集群模式下使用HSQL的解决方案对我们来说是理想的,但我们愿意接受变革。

5 个答案:

答案 0 :(得分:6)

Stackoverflow资源
MySQL支持开箱即用的复制:请参阅MySQL的这个问题:Scaling solutions for MySQL (Replication, Clustering)

PostgreSQL也支持复制,请参阅此问题:PostgreSQL replication strategies

如果您的要求很简单,MySQL就可以使用
我使用MySQL是一个简单的主 - 主故障转移场景,使用我在High Performance MySQL中读到的设置。如果你热衷于使用MySQL,我强烈推荐这本书。

它对我来说效果很好,因为我只想要一个简单的故障转移 如果您的用例同样简单。它会运作良好。

答案 1 :(得分:2)

为了完整性,H2 database has some clustering support,但与MySQL和PostgreSQL功能相比,它非常有限,它实际上只是故障转移。我先看看HA-JDBC

答案 2 :(得分:1)

用于服务器位于同一位置的简单故障转移。您可以使用DRBDHeartbeat

简而言之:DRBD同时将数据存储在2台服务器上。对系统完全透明。使用heartbeat对主服务器进行备用检查,如果无法访问,它将接管资源,安装它并启动数据库守护程序。 (适用于mysql,postgres,很可能与大多数其他守护进程一起使用)

答案 3 :(得分:1)

有一个与HSQLDB一起使用的第三方产品:

http://ha-jdbc.sourceforge.net/

答案 4 :(得分:1)

不确定这是否在大多数FOSS类型人员的期望价格范围内:-)但我们正是为了这个目的使用DB2 9.7(实际上,我们主要在大型机上使用DB2 / z,但有些客户喜欢适用于较小系统的DB2 / LUW(Linux / UNIX / Windows)选项。

DB2内置了高可用性(HA)功能,您可以使用db2haicu,DB2高可用性实例配置实用程序(不得不喜欢Big Blue使用的那些首字母缩略词生成器)来相对轻松地配置。

它是主动/被动的,尽管DB2肯定能够进行主动/主动设置以实现负载平衡。

我们在低端最熟悉的特定设置(除了大型机之外的所有设备)实际上都是共享磁盘设置,HA只应用于DBMS资源而不是数据,但是您可以将数据与DB2复制分开功能也是如此。

我们有一个客户端(至少)使用Q复制,这是一种非常低延迟的复制方法,接近同步但不完全。 DB2确实提供了真正的同步复制。

DeveloperWorks有an interesting article关于这一切如何挂起以及各种选项。