随着互联网技术应用的日益普及,各行业的业务系统用户数量与数据量呈现出显著的增长趋势,这在此趋势下,业务系统对数据库在高并发处理、海量数据存储以及异地容灾方面的能力提出了极高的要求。
为了解决上述问题达梦数据设计出了基于达梦数据库分布式集群的两地三中心解决方案。方案是基于达梦数据库分布式集群与达梦监控软件 DMDEM 共同构建。这套解决方案充分发挥了中心内所有节点的数据库的性能,能够保障中心之间数据的一致性,提升数据的可靠性和安全性。同时,达梦数据库分布式集群可以实现多点写入,解决大规模核心业务下的并发瓶颈,自动故障秒级切换,确保业务的高性能与高可用,从而提升用户的使用体验。此外,这套方案是基于达梦自主原创的产品,达梦可以根据用户的需求对方案进行配置,根据国产化服务器配置灵活调整节点数,支持动态伸缩。在灾难恢复能力方面,达梦两地三中心的能力等级已经达到国标金融级中 6 级容灾标准,完全满足用户业务系统的海量数据存储、高并发事务处理、数据安全防护绿色低碳需求,并助力国产基础软硬件生态体系建设。
达梦数据库分布式集群基于计算 - 管理 - 存储分离( SP - MP - BP )的全新架构,通过灵活的架构和强大的多节点协作能力,帮助客户在各种核心业务场景构建两地三中心数据容灾架构。
两地三中心 :一种高可用性容灾方案,三个数据中心并存,能在任意两个数据中心受损的情况下,最大限度保障核心业务的连续运行,大大提高核心系统的可用性。
生产中心 :即主数据中心,承担日常业务压力,对外提供服务。
同城容灾中心:是指在同城或邻近城市(通常要求距离主中心 10km 到 200km,建议 50km 以内)建立可独立承担关键系统运行的数据灾备中心,应用可在不丢失数据的情况下切换到同城灾备中心运行,保持业务连续运行,是两地三中心容灾方案的第一级容灾保护。
异地容灾中心 :是指在异地的城市(通常要求距离主中心 200km 以上)建立一个数据灾备中心,应对区域性重大灾难,是两地三中心容灾方案的第二级容灾保护。
RTO :灾难发生后,信息系统从停顿到必须恢复的时间要求。
RPO :灾难发生后,数据必须恢复到的时间点要求。
运维管理平台 :提供数据库管理,监控和维护的功能,实现远程管理和监控数据库实例及数据库集群的平台软件。
灾备管理控制端 :支持同时访问三个数据中心,支持部署运维管理平台,提供日常监控运维及故障切换处理的操作平台。
DEM :达梦数据库运维管理平台软件。
BP :数据存储节点,英文全称为 Backend Processor,简称为 BP。BP 为达梦数据库分布式集群中数据实际存储的节点,负责存储数据和接收 SP 的子任务调度指令,执行子任务,并返回结果给 SP。
SP :计划生成节点,英文全称为 SQL Processor,简称为 SP。SP 为达梦数据库分布式集群中对外提供数据库服务的节点,负责接收用户请求并生成计划、划分子计划、按照一定规则计算并行度并调度各个子计划,并最终将执行结果返回给用户。对于一次客户端请求任务来说,客户端连接的 SP 负责生成、划分并调度计划,其它的 SP 和 BP 负责执行计划。
MP :元数据服务器节点,英文全称为 Metadata Processor,简称为 MP。MP 为达梦数据库分布式集群中提供元数据服务( 即字典信息服务 )的节点。所有 DDL 请求都会经过 SP 转发给 MP 执行,元数据信息全部存储在 MP。
两地三中心专为保护 MP 和 BP 数据而设计,与 SP 无关。SP 因为没有数据,因此不必按照 “ 地域-数据中心-容错域 ” 等两地三中心的规则来配置,SP 可根据用户实际使用情况放在任意机房,不影响整体架构能力。
图2-1 两地三中心整体架构图
如上图,拟在北京、上海两地构建三中心的数据容灾系统,数据中心 1 为生产中心,承担日常业务,保留两副本数据,中心内部具备故障自动能力;数据中心 2 为同城容灾中心,保留两副本数据,具备和生产中心一样的业务能力和容灾能力;数据中心 3 为异地容灾中心,保留一个数据副本,提供异地数据容灾能力,不参与事务提交,不会拖慢生产中心性能。
在灾备管理控制端配置一台运维管理服务器,部署达梦企业管理平台 DEM,用于日常监控运维。
达梦数据库分布式集群环境中会有大量的并行计算。简单的、固定个数的并行线程的逻辑已经不能满足需求。需要一个可扩展的并行线程池( PTHD POOL )对其进行管理。当服务器负载大时,增加池内并行线程的数量;当负载减少时,服务器也可以自动释放一些并行线程以减少资源消耗。
为了克服传统数据库系统中将计算和存储耦合在一起导致的瓶颈问题,达梦数据库分布式采用了计算与存储分离的架构。将数据获取相关的子计划放在 BP 上,中间层计算相关的子任务放在一个或多个 SP 上执行。
多副本系统中的主库通过 RAFT 归档方式向备库同步数据。
与本地归档写入保存在磁盘中的日志文件不同,RAFT 归档将主库产生的 Redo 日志通过 XMAL 模块传递到备库,RAFT 归档是多副本系统的实现基础,RAFT 归档只在主库生效,一个主库可以配置 2 ~ 8 个 RAFT 备库,归档目标个数必须是偶数(确保总的实例个数是奇数)。
在达梦数据库分布式使用过程中,可通过动态的增删 SP 和 BP 节点的操作来扩大和缩小集群规模,灵活应对业务变化。MP 不支持动态增删。
如果现有主机有可用的硬件资源,可以添加新的 SP、BP 节点到当前集群。新节点直接部署到已有的主机上。
添加新的 BP 节点后,后续数据存储便可以利用这些 BP。由于 BP 上并不持有元数据信息,因此新加入的 BP 节点可以马上提供服务。新加入的 SP 节点可以用于响应更多的客户请求,分担子计划的执行。
在分布式系统架构下,不同的服务器之间通过网络远程协作而完成的事务,称为分布式事务。
达梦数据库分布式通过两阶段提交技术来保证多个 BP 之间的分布式事务一致性。两阶段提交的参与者为 SP 和 BP。SP 作为全局事务的协调者,统一处理全局事务。BP 作为参与者,是被SP 调度并执行事务的节点。SP 根据 BP 的响应来决定是否真正的执行并提交事务。所有参与者 BP 要么一起提交要么一起回滚,始终保持事务一致性状态。两阶段分为预提交阶段和提交阶段。
副本系统中,基于 RAFT 协议的选举规则,结合达梦 REDO 日志包的特点,制定了一套适合达梦多副本系统的选举规则,各节点实例根据此规则自动选举出领导者( Leader )和跟随者( Follower ),且该选举规则可手动配置,用于调整选举优先级。其中 Leader 角色的实例会自动切换为主库模式,Follower 角色的实例会自动切换为备库模式。
在多副本系统中,在主库发生故障时,根据达梦多副本的选举规则可以安全的从活动备库中选出新主库,保证已提交的数据不会丢失;在少数备库发生故障或者出现网络延迟时,不会影响主库的正常运行。
在一个多副本集群中,可以将所有节点划分为两种 :RAFT 库和影子库。RAFT 库为多副本集群中正常修改数据文件,有完整数据,可以正常提供服务的节点;多副本影子库,又称为影子库( SHADOW 库),为多副本集群中的特殊节点,不修改数据文件,没有数据,但正常参与选举和事务提交,仅提供 V$动态视图查询的节点。RAF T 库是必选项。影子库为可选项,当用户存储资源不足的时候,可以部署少量影子库来代替 RAFT 库。
在达梦数据库的分布式集群架构中,数据一致性的保障是至关重要的一环。为了实现这一目标,达梦数据库在 RAFT 协议的基础上,引入了更为先进和全面的数据一致性保障能力,即强制指定相应副本参与日志提交。这样无论是在高并发、大规模数据处理的场景下,还是在网络波动、硬件故障等异常情况下,达梦数据库都能够严格确保指定副本数据的完整性和一致性,为用户提供稳定可靠的数据服务。
容灾网络距离:< 100km ,裸光纤连接。
传输延迟:< 1ms (单向)。
网络真实带宽:大于业务的峰值写 IO 带宽。
容灾网络距离:无限制。
传输延迟:< 50ms (单向)。
网络真实带宽:大于业务的平均写 IO 带宽。
管理工作站需要三中心间通信。
网络距离要求:无限制。
通信网络带宽要求:10 Mb/s。
表2‑1 硬件配置推荐
硬件名称 | 使用要求 |
---|---|
处理器 | 计划生成节点 SP ≥ 32 个逻辑核,元数据节点 MP ≥ 16 个逻辑核,数据存储节点 BP ≥ 16 个逻辑核 |
内存 | 计划生成节点 SP ≥ 128G ,元数据节点 MP ≥ 64G ,数据存储节点 BP ≥ 128G |
磁盘 | 计划生成节点 SP ≥ 1024G,元数据节点 MP ≥ 1024G ,数据存储节点 BP 一个实例 ≥ 2048G (建议 SSD ) |
网卡 | 计划生成节点 SP ≥ 1000M,元数据节点 MP ≥ 1000M,数据存储节点 BP ≥ 1000M,同城、异地建议万兆 |
表2-2 软件配置推荐
类型 | 软件名称及版本 | 备注 |
---|---|---|
操作系统 | CentOS7.6 或银河麒麟 V10及以上版本 | 需要按装 gcc、gdb、unixODBC、perf 等包 |
数据库 | 达梦数据库管理系统 V8 及以上版本 | - |
运维管理平台 | 达梦运维管理平台 DEM V3.0 及以上版本 | - |
表3-1 容灾能力
容灾类别 | 容灾要求 | 测试结果 |
---|---|---|
实例容灾 | (1)在任意数据库实例出现故障时,集群内服务正常运行,数据不丢失,集群整体业务可用。(2)在实例故障、节点故障等单数据库实例故障时,RPO 时间等于 0,RTO 时间小于 30s。 | 通过 |
同城容灾 | (1)支持同城双中心部署,当主中心故障时,业务应切换到备中心。(2)由于网络、供电等原因造成的可用区级故障,触发集群计划外停机,在同城多可用区场景下,RPO 时间等于 0,RTO 时间小于 1 分钟。 | 通过 |
异地容灾 | 异地灾备场景支持两地三中心部署架构,在本地建立同城灾备中心,在异地建立异地灾备中心,RPO 时间小于 1 分钟,RTO 时间小于 10 分钟。 | 通过 |
达梦两地三中心方案优势如下:
(1)容灾能力达到国标金融级 6 级标准,确保在任意机房或城市级故障发生时,实现快速自动恢复,数据零丢失。
(2)异地数据中心不参与事务提交,不会增加事务提交延迟。主中心所在城市已有 4 个副本,达成事务提交条件,在主数据中心部分副本故障的场景下,剩余的 2 到 3 个副本也可达成多数副本的条件。
(3)强劲 HTAP 能力,既保留 DM 集中式数据库良好的单节点事物能力完全满足事务 ACID 性,又充分调动多节点性能加快大表关联、OLAP 等重型业务场景。能够支撑日均 100TB+ 数据入库和实时分析业务、支撑 500 亿+核心业务大表。
(4)通过设置影子副本让指定副本只参与仲裁而不保留数据。该设置方式即保留了 RAFT 组内选举能力又节省了近一倍的存储资源。
(5)可明确指定表的存储位置,逻辑设置灵活,更方便进行业务模块的解耦。
(1)海量数据分析
面对超大规模的数据量,数据库的存储和分析能力面临挑战。达梦数据库分布式集群采用存算分离的架构,通过计算层和存储层的水平扩展,可支撑 PB 级数据业务。
(2)超高并发实时交易
各行业互联网级应用普遍面临 用户基数大、营运活动频繁、核心交易系统数据库高并发响应慢等在技术和业务上的新挑战。达梦数据库分布式集群 依托强大数据库内核,结合分布式计算框架,可实现 OLTP 场景毫秒级存取。
(3)金融级高可用
关键核心业务系统数据库运行的稳定性和持续性至关重要。达梦数据库分布式集群采用基于 RAFT 协议的高可用多副本架构,具有节点自动选主、自动故障处理、自动故障恢复的特点,能够完美满足金融级高可用需求。