我有这种情况:
您有一条运行24/7的工厂生产线。停机时间非常昂贵。
控制所有不同部分的软件必须使用共享形式的数据库存储
这样做的主要原因是要知道工厂处于哪个状态。例如,某些产品在使用同一组设备时可以混合,而其他产品则可以明确地不使用。
要求:
电厂必须关闭1公里以外的机器。因此,将数据存储在plc中不是一种选择。
该系统每天处理一些琐碎的任务,在此任务中进行计算/检查,然后发送针对工厂机器的说明。系统大部分时间都会感到无聊。最重要的要求是中央计算机系统必须正确并且可以正常工作。
我当时正在考虑使用基于发电机的数据库(riak或cassandra),其中数据被写入多台计算机,每台计算机都具有整个数据库
当一个系统出现故障时,它将无中断地关闭。当表更改并且此主从服务器更难配置时,传统的sql数据库可能更难以升级。
您将如何解决?
网络已经变得多余,而其他大多数单点故障也到了。数据库系统至关重要,因为数据库的停机时间意味着整个工厂的停机时间,而不仅仅是可接受的一台机器。
最佳答案
我不认为这是sql/nosql问题。所有Postgres,MySQL和MS SQL Server都有某种群集或热备用选项。
配置是一次性的事情,但是如果您试图在为了运行事物而放弃了相关性的平台上尝试从根本上进行相关性的事情,那么任何NoSQL选项都将使您从代码的头到尾头痛不已。例如Amazon或Facebook。配置一次,编码就永远。
因此,我想坚持使用久经考验的真正解决方案,然后继续进行热复制。
这也提供了升级解决方案。典型的顺序是“故障转移”到备用数据库,升级主数据库,翻转回主数据库,升级备用数据库,然后继续。具体细节视情况而定。
关于sql - 高可用性架构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4737151/