2012-09-26 44 views
0

我在一个依赖Oracle数据库的交易应用程序中工作。传统的RDBMS没有单点故障

数据库崩溃了两次,企业主想要一些解决方案,即使数据库崩溃,应用程序仍能正常工作。

我的团队负责人介绍了Cassandra NOSQL作为解决方案,因为它没有单点故障,但是这个选项将使我们从传统的关系模型转变为我认为是缺点的NOSQL模型。

我的问题在这里,有没有办法避免与传统的关系数据库管理系统,如MySQL,PostgreSQL,......等数据库故障单点?

+0

如果你设置了卡珊德拉得厉害,没有任何根本性的DBA知识,和适当的环境,就像你用Oracle做的那样,它将再次失败...... – ppeterka

回答

0

NoSQL不是唯一可能的解决方案。您可以设置复制与MySQL:

http://dev.mysql.com/doc/refman/5.0/en/replication-solutions.html 

http://mysql-mmm.org/ 

和concerming故障转移的讨论:

http://serverfault.com/questions/274094/automated-failover-strategy-for-master-slave-mysql-replication-why-would-this 
1

听起来就像你只需要一个Oracle数据库实例的集群,而不只是一个实例,如Oracle RAC

如果您的Oracle服务器脱机解决方案是使用Cassandra,如果Cassandra集群出现故障会发生什么情况?是否真的处于这种情况:重写并重新构建整个应用程序以使用不同类型的数据存储库,以避免Oracle出现宕机?我怀疑这仅适用于使用量和负载数量巨大的应用程序,因为任何停机时间都会造成严重损失(而不仅仅是让业务人员对其老板感到尴尬)。

+0

我们的应用程序将重新架构化并且无论如何都是从头开始开发的,同时它也是经纪人应用程序,所以任何d自己的时间将花费严重的钱。如果是这种情况,最好去nosql或尝试获得传统RDBMS的主要问题解决方案?我知道 –

+0

这是一个完全主观的问题,只能由应用程序开发团队回答:) –

+0

Oracle RAC,正确的硬件,正确的存储空间,正确的交流和适当的电源。 适当的在这方面意味着没有SPOF。 – ppeterka

1

有没有办法避免DB失败的传统的关系型数据库管理系统

不,那是不可能的一个点。只是因为当一个节点死亡。它消失了。

任何容错系统都将使用多个彼此复制的节点。您仍然可以使用传统的RDBMS,但您需要配置镜像才能让系统承受节点故障。