我们目前正在评估不同数据库中的故障转移支持 我们之前使用的是HSQLDB,但它似乎没有群集/复制支持。
我们的要求只是拥有两个数据库服务器,一个仅用于同步备份,但如果主服务器已关闭,则辅助服务器应自动开始充当主服务器。
有没有人为这样的用例评估MySQL,PostgreSQL或任何其他数据库服务器?
编辑:我们曾考虑使用MySQL集群,但现在看来它是GPL许可证,我们将无法使用它。有人可以建议一个可以使用的同步复制/集群解决方案吗?我们目前正在使用HSQL,因此在集群模式下使用HSQL的解决方案对我们来说是理想的,但我们愿意接受变革。
答案 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)
用于服务器位于同一位置的简单故障转移。您可以使用DRBD和Heartbeat。
简而言之:DRBD同时将数据存储在2台服务器上。对系统完全透明。使用heartbeat对主服务器进行备用检查,如果无法访问,它将接管资源,安装它并启动数据库守护程序。 (适用于mysql,postgres,很可能与大多数其他守护进程一起使用)
答案 3 :(得分:1)
有一个与HSQLDB一起使用的第三方产品:
答案 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关于这一切如何挂起以及各种选项。