072023.09

数据库两地三中心解决方案

2023.09.07

一、方案背景


“两地三中心”中的两地是指同城、异地;三中心是指生产中心、同城灾备中心、异地灾备中心。当单个地域的业务无法幸存时,可以采用同城双中心加异地灾备的“两地三中心”容灾备份解决方案,来应对大范围自然灾害导致的业务中断和数据丢失。万里数据库两地三中心高可用灾备解决方案可以完美解决各种场景下的灾备切换问题。


万里数据库集群支持的两地三中心容灾系统属于数据级的容灾,提供数据库的两地三中心解决方案,易用、易维护、可靠性高;并且用户可以在万里数据库的两地三中心方案上对应用和业务进行改造,构造应用级或业务级容灾系统。



二、应用场景



1) 数据同步:在多个副本之间进行数据同步,并基于同城短距离和异地远距离的不同场景提供最优的数据同步方案;


2) 双活、热备、备库可读:分担业务压力,识别读写事务并进行分发,降低单个数据副本的业务压力,提高整套系统的处理能力;


3) 故障切换与故障恢复能力:保证7*24小时提供数据服务,各种软硬件故障下能够提供安全可靠的数据服务,最大程度提供数据可靠性和服务持续性;


4) 独立备份:是生产数据最后的保障。即使整套业务、数据库系统都无法恢复,最后还有独立备份数据作为最终数据安全保障手段。


 

三、解决方案



1、单一大集群解决方案

在同城两个机房部署一套数据库集群,两个机房各有2个副本,副本之间采用Paxos协议进行数据同步,保证数据一致性,保证数据库的同城双活。两个机房分别部署对等的业务系统,保证业务的同城双活。


同城双机房,大集群的主要优势是切换简单,集群内故障自动完成探测切换,内置防脑裂机制成功率100%,灵活部署,可实现任意副本节点的部署,可灵活配置对外访问合规的需求。可根据业务增长进行灵活扩展,突破传统的“停机维护”。

1.png


2、机房A、B单点故障

 当机房A/B主中心节点发生单点故障,由于多副本部署,集群自动探测节点故障,自动完成切换选主,因此数据库集群仍正常提供读写服务,业务不受影响。待故障恢复后,快速完成数据同步,节点即可修复。


 

 2.png


3、机房A/B整体故障

 


此方案是同城双活部署一个大集群方案,数据自动同步多副本,所以当机房A/B故障后,机房B/A自动接管机房A/B的所有服务,自动完成故障切换,不用担心数据丢失问题,因为远程机房肯定有一份最新数据。因此数据库集群仍正常提供读写服务,业务不受影响。待故障恢复后,快速完成数据同步,节点即可修复。


3.png


4、机房A、B全部故障

当机房A、B同时故障后,也就是主要的机房出故障,这时候需要应用配合,应用切换到异地机房的应用,由异地机房的应用记问异地机房的数据库。


 4.png


5、异地容灾

同城双机房单一大集群,将一个集群跨同城多机房进行部署。异地机房部署灾备集群,灾备集群基于主城市集群备份进行还原,而后通过集群配套集群CDC全局binlog server和数据同步工具GreatDTS进行异步增量同步,确保灾备集群的数据应用不会影响主城市机房双活集群性能。


 

5.png

 


6、故障恢复

故障恢复功能主要基于数据库日志以及分布式事务日志进行集群事务操作的故障恢复。每个数据节点通过Redo日志、Undo日志和binlog日志进行本地事务recover,而后数据节点直接通过分布式事务日志进行协调和分布式事务recover。


分布式事务中会包含相关事务所涉及的数据节点、分布式事务的整体提交状态、以及用于恢复的操作日志。数据节点根据分布式事务全局的提交状态和本地提交状态的对比进行分布式事务的恢复操作。


 


四、方案优势



1) 数据完整性:集群内部多副本保障数据不丢;集群外部机房级保障数据不丢;


2) 业务连续性:多副本、多机房、数据强一直,保障业务不中断。同城机房间故障秒级切换;城市级故障分钟级切换(以网络情况而定);数据零丢失、业务可连续。