我在一个交易应用程序中工作,这依赖于Oracle数据库。
数据库崩溃了两次,企业主想要一些解决方案,在这种解决方案中,即使数据库崩溃了,应用程序仍然可以工作。
我的团队领导引入了Cassandra NOSQL作为解决方案,因为它没有单点故障,但这种选择将使我们从传统的关系模型转移到NOSQL模型,我认为这是一个缺点。
我的问题是,有没有办法避免Mysql、postgreSQL、......etc等传统关系型数据库系统出现单点数据库故障?
发布于 2012-09-26 23:58:55
NoSQL不是唯一可能的解决方案。您可以使用MySQL设置复制:
http://dev.mysql.com/doc/refman/5.0/en/replication-solutions.html和
http://mysql-mmm.org/ 和协调故障转移讨论:
http://serverfault.com/questions/274094/automated-failover-strategy-for-master-slave-mysql-replication-why-would-this发布于 2012-09-26 23:54:27
听起来您只需要一组Oracle数据库实例,而不是像Oracle RAC这样的单个实例。
如果您的Oracle服务器脱机解决方案是使用Cassandra,那么如果Cassandra集群宕机会发生什么情况?您是否真的需要重写和重新架构整个应用程序,以使用不同类型的数据存储,从而避免Oracle宕机?我怀疑这只对使用和加载数量巨大的应用程序有意义,在这些应用程序中,任何停机都会花费大量的金钱(而不仅仅是让业务人员对他们的老板感到尴尬)。
发布于 2012-09-26 23:56:06
对于传统的关系型数据库管理系统,
是否有避免单点数据库故障的方法
不,这不可能。很简单,因为当一个节点死了。它已经消失了。
任何容错系统都将使用多个相互复制的节点。您仍然可以使用传统的RDBMS,但是您需要配置镜像,以便系统能够容忍节点故障。
https://stackoverflow.com/questions/12605649
复制相似问题