OceanBase数据库从诞生之初,就利用Paxos协议在底层实现了多副本数据一致性,具有上述“RPO=0、低RTO(通常在30s以下)、故障时自动切换”的优势。而经过多年实际应用场景的历练后,尤其是像支付宝、淘宝、网商银行这种高并发、高访问量、24*7持续交易场景的磨练,OceanBase数据库已经摸索出一套完整的、经过实践检验的高可用及容灾方案。下面我们就结合OceanBase数据库的实践经验,向大家介绍一下OceanBase及分布式数据常用的一些高可用及容灾方案。
其中最核心的思想就是要充分利用分布式多副本数据一致性协议的原理,并结合各种意外情况的具体特点(个别硬件故障?机房级灾难?还是城市级灾难?),找到对应的解决之道。如果客户的基础设施条件有限,不能满足分布式多副本数据一致性协议的部署要求,那么可以考虑引入其它方式,比如集群间数据复制。
下面的表格中,我们总结了几种方案方便读者参考:
大体来讲,针对不同的具体情况,下面几种方案都满足了“RPO=0、低RTO、故障时自动切换”的要求,而且在技术上没有明显的缺陷,应该作为高可用及容灾方案的首选:
• 单机房3副本方案如果没有任何机房级容灾或者城市级容灾的要求,只有最简单的高可用要求,那么这种简单易行的部署方案是再好不过了。
• 同城3机房3副本方案如果有机房级容灾的要求,但没有城市级容灾的要求,那么这种方案是最佳选择。
如果用户只有同城2机房而没有建设第3机房,可以考虑在同城内租借一个机房(甚至只租借部分机柜)来满足3机房的条件,并可以利用OceanBase的“日志副本”技术降低部署难度。
• 3地3机房5副本方案如果既有机房级容灾的要求,也有城市级容灾的要求,那么这种方案能全部满足,提供最高级别的高可用性。
如果用户的基础设施条件有限,无法满足上面几种方案的要求,但同时又要求机房级容灾能力或者城市级容灾能力,应考虑“集群间数据复制”方案。
最后,也必须意识到技术在不断进步,OceanBase在不断进步,用户的IT建设也在不断进步。今天的最佳方案也许明天就能找到更好的替代者,因此我们必须以发展的眼光持续进化我们的技术方案,才能让OceanBase的用户在未来有更多更好的选择。在这个过程中,我们也非常希望和业界的朋友及广大用户有更多的技术交流和思想碰撞,共同推进分布式数据库技术下高可用及容灾方案的发展。