一、引言
云数据库作为企业数字化转型的关键基础设施,其高可用性和容灾能力直接关系到业务的连续性和数据的完整性。某款云数据库产品凭借其卓越的性能、高可用性和可扩展性,在金融、政务、能源、交通等关键信息基础设施行业中得到了广泛应用。本文将对该云数据库的集群HA与容灾技术进行详细介绍,包括架构设计、容灾备份方案以及具体的容灾实现方式。
二、架构设计
该云数据库的架构设计遵循组件化原则,将系统划分为内核和管理运维两部分。内核负责数据库的核心功能实现,包括数据存储、查询优化、事务管理等;管理运维部分则负责数据库的管理和运维,包括集群管理、备份恢复、安全控制等。
- 高性能:通过优化数据库内核和分布式架构,实现高性能的数据处理能力,满足用户关键业务负载的需求。
- 高可用性:采用主备从架构和分布式部署方式,确保数据的高可用性和容错能力。
- 可扩展性:支持水平扩展和垂直扩展,满足用户业务发展的需求。
在分布式架构中,集群是数据库的基础,各个节点实例资源独立,理论支持无限扩展。集群管理服务实例负责集群实例的状态仲裁和管理,确保集群的稳定运行。全局事务管理实例负责执行SQL时分配事务号、快照等,保证集群全局的事务一致性。集群管理执行实例负责每个节点实例的状态监控和HA控制,定期向集群管理服务实例上报节点的实例信息。协调节点负责接入执行业务的节点,根据SQL引擎的分析结果决定语句的具体执行方式。数据节点负责存储数据,采用主备从形态存在于集群中,以保证单点故障后的高可用性。
数据计算路由层在分布式架构中扮演着关键角色,负责将用户请求分发到合适的数据节点上执行,以实现数据的并行处理和快速响应。通过优化数据计算路由层的关键技术方案,如智能路由、负载均衡等,进一步提升系统的性能和可用性。
三、容灾备份方案
容灾备份方案是保障数据完整性和可用性的重要手段。该云数据库的容灾备份方案主要包括数据备份、数据恢复和容灾切换三个环节。
- 数据备份:是容灾备份的基础,通过定期或实时地将数据库中的数据备份到远程存储设备上,确保数据的完整性和可恢复性。
- 数据恢复:是在数据丢失或损坏时,利用备份数据将数据恢复到原始状态的过程。
- 容灾切换:是在主数据库发生故障时,将业务切换到备份数据库上,确保业务的连续性。
该云数据库采用以下技术手段实现高效、可靠的容灾备份方案:
- 多副本部署:将数据分散存储在多个物理节点上,实现数据的冗余备份。通过多副本部署,可以在一定程度上提高数据的可靠性和可用性。
- 分布式备份:备份系统采用分布式架构,将备份任务分散到多个备份节点上执行,提高备份效率和备份的可靠性。同时,分布式备份还可以实现备份数据的自动复制和备份节点的负载均衡。
- 增量备份与恢复:在备份过程中只备份自上次备份以来发生变化的数据块,而不是整个数据库。这种备份方式可以大大减少备份时间和备份数据的大小,提高备份效率和备份的可用性。
- 智能恢复:恢复系统具有智能恢复功能,可以根据备份数据的元信息自动判断数据的损坏程度和恢复策略,选择最合适的恢复方式,提高数据恢复的效率和成功率。
- 容灾切换自动化:容灾切换系统支持自动化切换,当主数据库发生故障时,可以自动将业务切换到备份数据库上,确保业务的连续性。同时,容灾切换系统还可以根据业务需求和网络状况等因素自动选择最优的切换路径和策略,提高切换的效率和成功率。
四、容灾实现方式
该云数据库提供了多种容灾实现方式,以应对不同场景下的高可用性和容灾需求。
- 同城跨AZ双活方案
同城跨AZ双活方案是一种高可用性部署模式。同城指的是在同一城市或邻近城市,AZ(Availability Zone)是指数据中心内的独立区域,具备独立的电力、制冷和网络设施,以提高系统的容灾能力。
同城跨AZ双活方案通过在同城的两个AZ中分别部署两个数据中心,实现关键系统的独立运行和实时数据同步。两个数据中心具备基本等同的业务处理能力,通过高速链路实时同步数据。在日常情况下,两个数据中心可以同时分担业务及管理系统的运行,并具备快速切换的能力。
主集群和备集群分别部署在两个AZ的数据中心中。主集群负责处理业务请求,备集群则实时同步主集群的数据,并保持热备状态。当主集群出现故障时,备集群可以迅速接管业务,保证业务连续运行。这种部署模式通过高速链路实现数据同步,确保数据的一致性,并在灾难情况下实现快速切换,减少业务中断时间。
同城跨AZ双活方案具有以下优势:
- 高可用性:通过同城双活部署,确保业务在任何情况下都能正常运行。
- 数据一致性:通过实时数据同步,确保两个数据中心的数据完全一致。
- 资源优化:两个数据中心共同分担业务负载,提高资源利用率。
- 两地三中心容灾方案
两地三中心容灾方案是一种跨地域容灾解决方案。两地指的是两座城市,即同城和异地;三中心指的是生产中心、同城容灾中心以及异地容灾中心。
在同城部署两个数据中心作为生产中心和同城容灾中心,同时在异地部署一个数据中心作为异地容灾中心。生产中心负责处理日常业务请求,同城容灾中心实时同步生产中心的数据,并保持热备状态。异地容灾中心则作为数据备份中心,定期备份生产中心和同城容灾中心的数据。
在日常情况下,生产中心和同城容灾中心共同分担业务负载,并通过高速链路实时同步数据。当生产中心出现故障时,同城容灾中心可以迅速接管业务,保证业务连续运行。当同城两个数据中心都出现故障时,异地容灾中心可以使用备份数据进行业务恢复,确保数据不丢失。
两地三中心容灾方案具有以下优势:
- 高可靠性:通过同城双活和异地容灾的组合部署,确保在任何情况下都能保证业务连续运行和数据不丢失。
- 资源优化:根据业务需求灵活调整资源分配,提高资源利用率。
该云数据库通过流式复制技术实现数据的实时同步。主数据库实例将增量数据实时发送给备数据库实例,备数据库实例接收并应用这些增量数据,确保数据的一致性。
容灾搭建流程包括将两个正常集群配置为主集群和灾备集群,主集群和灾备集群之间建立流式复制关系,实现数据的全量和增量同步。故障切换时,当主集群出现故障时,灾备集群可以通过升主操作成为正常集群,对外提供服务,并脱离容灾状态。
容灾演练功能可以在不影响业务的情况下模拟故障切换过程,验证容灾方案的可行性。跨地域容灾通过异地容灾中心的建设,实现跨地域的数据备份和恢复能力。
- 跨云容灾方案
跨云容灾方案实现了同云及跨云场景下的架构统一,解决了用户多云跨地域部署的数据库高可用难题。该云数据库提供了多种跨云容灾方案,用于应对多样的客户化场景。
- 单集群多副本模式:通过将集群内不同的副本部署在不同的机房来实现跨地域的容灾能力。该部署方案实现简单、成本较低、容灾的RPO(Recovery Point Objective)=0。但是单集群多副本的容灾方案依赖主备机房之间的距离,地理距离的增大会影响到生产服务的性能,而且单集群容灾无法防御集群内部组件级的故障。
- 同城双集群容灾:使用同一个管控云平台、双region的容灾方案。该方案可以很好地防护集群内组件级的故障,主备集群是公用同一个云平台进行容灾管理的。当主集群连同云平台受损后,此时无法从云管控平台对灾备集群进行一键故障拉起,需要底层数据库层面执行灾备库拉起的命令,会增加业务恢复的难度。
- 双集群方案:在不同的云管平台下,采用双集群的方案来保证主集群性能以及故障域隔离。该方案针对使用同一个云管控平台的弊端,将主备集群分在两个云管控平台。当发生不可控因素导致主集群连同其所在的云管控平台同时故障时,可以单独对灾备集群所在的云管控平台下发容灾升主命令,从而快速将灾备库拉起接管业务。
该云数据库的跨云容灾方案突破了容灾能力对云管控平台的依赖,通过统一主备集群间容灾交互的标准,实现了业务实例和容灾实例在不同的云管控平台分别管理的方案。在最大限度保证数据库业务容灾能力的前提下,简化了跨云容灾的运维难度,不受云管平台的限制。
容灾搭建完成后,可以对容灾信息进行实时监控,包括容灾状态、RPO、RTO(Recovery Time Objective)等关键指标。在容灾搭建完成后,可以在主集群或者是灾备集群上点击主备切换完成容灾倒换。容灾主备倒换可用于用户的容灾演练场景,提供了主集群降备、容灾集群升主的能力,保障了