从分布式数据库需要不需要备机谈起
创始人
2025-06-29 22:11:26
0

经常有行业客户和我讨论分布式数据库的备机问题,实际上这个问题与其说是技术问题,更可以说是一个政治问题。就像昨天各大群里都在讨论的日本核污染水的问题,有些人认为是技术问题,有些人认为技术上没问题,是政治问题。我不是核物理专家,也不是环境生态学家分辨不出哪个观点对,哪个观点不对。我想哪怕是核物理学家和环境生态学家,面对这个人类史无前例的举动,也不一定能搞得明白。有些事情可能得十几二十年后再来看才能看清楚。

与搞不清核污染水排放的问题类似,在数据安全领域有些时候也是很难搞清楚的。因为绝对的可用性是不存在的,现实世界中的数据库安全是投资与可用性之间的游戏。单一数据库存在单点故障,那么主备机同时故障的可能性就不存在了吗?当然存在,只是概率低了一点而已。我在十多年前就遇到过客户主数据库、ADG备库、磁带备份三大保障措施同时失效的悲剧,这种低概率事件落到你头上就是100%。二十多年前我和一个银行的主管交流数据库可用性的时候,他说他们为了确保可用性,主备机不能使用同一批次的小型机,同一个磁盘组里的磁盘不能使用同一批次生产的磁盘。我问他为什么,他说他们曾经出过一次故障,是因为一个批次购买的几台小型机中同时有3台在同一天里出现了内存故障,不幸的是,其中两台是核心数据库服务器,当时使用HACMP高可用切换,切换时HANG死了,核心交易停了几个小时,事后就有了这个规定。

分布式数据库自身具有高可用机制,比如Oceanbase在一些金融行业应用时是采用5副本机制的,一种典型的配置是2副本在主机房,2副本在备机房,第五副本在第三机房。这样的配置,在绝大多数情况下出现故障,都可以快速的通过切换来保证业务系统的正常运行。不过有没有可能存在2个机房同时故障甚至三个机房同时故障的可能性呢?虽然这种可能性存在,但是几率很小。那么基于这个原则,使用分布式数据库之后就不需要备机了吗?好像也没有那么简单,按照金融机构的安全要求,两地三中心、主备机高可用切换,这是监管要求。虽然这个监管要求出台是在集中式数据库大行其道的时候颁布的,但是只要一天不修改条款,金融机构就必须严格的遵守。双倍的可靠性更加安全也是十分肯定的,因此只要手头的银子够,给分布式数据库搞个备机也不是不可能的。

还有一个需要考虑的因素是,分布式数据库本身会不会出问题。相信分布式数据库的高可用还要看数据库本身有没有问题。就像以前我们通过extended RAC来做同城双活一样,这套双机房四节点部署的extended RAC系统,哪怕增加了第三机房的第五块投票盘,也不能确保任何时候都不出问题,一旦整个集群出问题了,那么数据库就挂了。因此能做得起extended RAC的用户我们都会让用户再上一个ADG,一旦整个RAC出问题了,ADG还可以接管大部分核心业务。实际上分布式数据库的可靠性也不会比Oracle RAC高多少,也会出现整个数据库出问题的可能性。因此哪怕监管没有需求,对于银行账务这样的核心系统,做个备机也是十分必要的,金融账务安全,哪怕再小心都还是值得的。

对于绝大多数用户来说,给RAC,分布式数据库做一个备机,能用上的概率都是极小的,我参与过的一些基于extended RAC的双活项目,从来没有发生过主数据库故障必须切换到ADG的情况。不过extended RAC故障,没有备机,导致业务中断的案例还是听说过几次的。要不要建备机与风险和投入的比例关系有关,这是一个政治问题,不是技术问题。从技术底线上说,备机肯定更安全,不过也更花钱。谁要是和我说分布式数据库不需要备机,那我也只能说你自己觉得就行,天底下没有三十年不漏的砖瓦房,数据库也是人一行行代码写出来的,哪怕是有了备机,也无法保证100%不出问题,只要是出了问题你能扛得住就行。

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Intel将Moblin社区控... 本周二,非营利机构Linux基金会宣布,他们将担负起Moblin社区的管理工作,而这之前,Mobli...