在金融、政务等关键业务领域,数据库的持续可用直接决定业务连续性。达梦数据库以数据守护(Data Watch) 为核心构建高可用体系,通过日志同步、状态监控与智能故障切换,实现 “数据零丢失、服务秒级恢复” 的核心目标。本文全面解析其技术架构、方案选型与落地实践。
一、高可用核心架构与组件解析
达梦数据守护体系基于 “日志同步 + 分布式协同” 设计,由五大核心组件构成有机整体,确保全链路可靠性。
(一)核心组件与功能分工
• 数据库节点:分为主库(Primary)与备库(Standby)。主库承担全量读写业务,产生 Redo 日志;备库通过重演日志保持数据一致,同时提供只读服务(支持临时表修改等操作),支持单主库配置 8 个实时备库,满足多副本容灾需求。
• 守护进程(dmwatcher):每个数据库实例的 “贴身管家”,部署于实例所在服务器。负责监控实例运行状态、日志同步进度,在故障时触发切换流程,同时通过 dmwatcher.ctl 控制文件记录接管信息。
• 监视器(dmmonitor):集群的 “指挥中心”,独立部署于第三方服务器。整合所有守护进程上报的状态信息,支持自动 / 手动切换模式,提供show instance、switchover等命令接口,实现集群全局管控。
• MAL 通信层:主备节点的 “高速通道”,基于 TCP 协议实现节点间通信。采用日志包(RLOG_PKG)批量传输 Redo 日志,减少网络交互开销。
• 故障检测模块:通过每秒一次的 TCP 心跳检测实例存活状态,结合日志序列号(LSN)对比判断数据同步健康度,避免单一指标导致的误判。
(二)核心工作原理
数据守护的本质是 “日志驱动的数据一致性保障”,核心流程可概括为三步:
• 日志生成与传输:主库处理事务时生成 Redo 日志,根据归档策略实时 / 定时打包为 RLOG_PKG,通过 MAL 层发送至备库。
• 日志重演与同步:备库接收日志包后,按 LSN 顺序重演(Replay),通过对比主库 FILE_LSN(已落盘日志序号)与备库 APPLY_LSN(已重演日志序号),确保数据一致性。
• 故障检测与切换:守护进程发现主库故障后,由监视器选举最优备库(优先选择 APPLY_LSN 与主库 FILE_LSN 一致的节点),备库重演剩余日志后切换为主库,VIP 自动漂移实现客户端无感切换。
二、四大主流高可用方案详解
达梦针对不同业务场景提供四类解决方案,覆盖从基础容灾到分布式集群的全需求谱系。
(一)实时主备方案:强一致容灾首选
架构特点:1 主库 + 1-8 备库,采用 REALTIME 归档模式。主库在 Redo 日志写入本地联机日志前,先发送至备库;备库接收后立即响应(无需等待重演完成),主库再完成本地落盘。
数据一致性:RPO(恢复点目标)=0,主库故障时备库可重演所有接收日志,实现数据零丢失。
核心优势:部署简单、成本可控,支持异地跨机房部署,适用于金融核心交易、政务数据存储等强一致需求场景。
典型流程:主库执行 UPDATE 操作→生成 Redo 日志→发送至备库→备库返回确认→主库写入本地日志→事务提交。
(二)读写分离集群:高可用与性能优化双重实现
架构创新:1 主库 + 多备库,采用 TIMELY/REALTIME 归档保证数据一致性,通过达梦 JDBC/DPI 接口实现读写自动分流。
核心价值:
• 负载卸载:只读查询、报表生成等请求自动路由至备库,主库专注处理写事务,吞吐量提升 3-5 倍;
• 事务一致性:支持事务一致模式,主库需等待备库日志重演完成再响应,确保读操作获取最新数据;
• 弹性扩展:通过增加备库节点线性提升读性能,适合电商、新闻门户等读多写少场景。
(三)DMDSC 共享存储集群:高性能与高可用融合
架构特性:多实例共享 DMASM 分布式存储,支持 2-8 个节点集群。由 DMCSS(集群同步服务)协调节点状态,存储采用镜像副本 + 条带化技术,单磁盘故障可自动切换至镜像副本。
高可用能力:节点故障时,DMCSS 立即将其隔离,用户连接自动迁移至正常节点;故障节点重启后仅需重做增量日志即可重加入集群,无需全量数据恢复。
性能优势:所有节点均提供服务,无资源闲置,配合数据条带化实现 IO 并行,适合高并发 OLTP 场景(如电商订单系统)。
特殊能力:支持 DMDSC 集群与单节点互为主备,主库集群故障时,单节点备库可接管服务,兼顾集群性能与容灾可靠性。
(四)分布式集群方案:分布式计算集群DMDPC
架构设计:一个完整的 DMDPC 架构由计划生成节点 SP、数据存储节点 BP 和元数据服务器节点 MP 三部分组成。SP 对外提供分布式数据库服务,用户可以登录到任意一个 SP 节点,获得完整的数据库服务;BP 负责存储数据,执行 SP 的调度指令并将执行结果返回给 SP;MP 负责存储元数据并向 SP、BP 提供元数据服务。SP 节点不存储数据,配置成单机即可。MP 和 BP 节点既可以配置成单机,也可以配置成多副本系统。其中每一个多副本系统中只有一个作为主节点,其余节点均作为备份节点。
DMDPC 架构包括元数据节点 MP、计算节点 SP 和存储节点 BP。通过计算节点 SP 对外提供分布式数据库服务;通过数据存储节点 BP 访问数据并进行简单的过滤、投影以及分组操作;通过元数据服务器节点 MP 获取 SP、BP 节点的数据字典信息。既支持计算与存储分离,又支持动态增删节点。
故障处理逻辑:基于 RAFT 协议的全新达梦多副本架构,具有节点自动选主、自动故障处理、自动故障恢复的特点,满足不间断提供数据库服务的要求。并且少数副本出现故障或者网络延迟不会影响整个系统的正常运行,因此也更能够适应分布式集群两地三中心的部署需求。
适用场景:海量数据分析场景,在电信运营商、金融等领域,用户累积了超大规模的数据,海量数据存储和分析面临挑战。DMDPC 采用存算分离的架构,通过计算层和存储层的水平扩展,可支撑 PB 级数据业务;超高并发实时交易,各行业普遍面临互联网级应用在技术和业务上的新挑战:用户基数大,营运活动频繁,核心交易系统数据库高并发响应慢等问题。DMDPC 依托强大数据库内核,结合分布式计算框架,可实现 OLTP 场景毫秒级存取;金融级高可用,关键核心业务系统数据库运行的稳定性和持续性至关重要。DMDPC 采用基于 RAFT 协议的高可用多副本架构,具有节点自动选主、自动故障处理、自动故障恢复的特点,能够满足金融级高可用需求。
三、关键技术细节与配置实践
(一)归档模式对比与选型
归档模式决定数据一致性与性能的权衡,达梦提供三类核心模式:
(二)核心配置文件示例
• dmarch.ini(实时归档配置):
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME # 归档类型为实时归档
ARCH_DEST = standby_inst # 备库实例名
MAL_INI = 1 # 启用MAL通信
• dmwatcher.ini(守护进程配置):
[WATCHER]
DW_TYPE = GLOBAL # 全局守护模式
DW_MODE = AUTO # 自动切换模式
DW_ERROR_TIME = 30 # 故障检测超时时间(秒)
INST_ERROR_TIME = 10 # 实例无响应超时时间(秒)
(三)故障切换关键机制
• 自动切换触发条件:监视器配置为 AUTO 模式、备库状态为 “SYNC”(数据完全同步)、主库故障持续超过 DW_ERROR_TIME。
• 强制接管场景:主库彻底损坏且无可用同步备库时,可通过takeover force命令强制提升备库为主库,同时通过 dmwatcher.ctl 文件判断数据分歧风险。
• 故障恢复流程:原主库修复后,自动以备库身份加入集群,通过增量日志同步追赶新主库数据,无需人工重建实例。
四、部署与运维实践指南
(一)实时主备集群部署步骤
• 环境准备:主备库硬件配置一致(内存≥8GB,IOPS≥1000),MAL 网络采用万兆网卡(延迟<1ms),安装同版本 DM 数据库并初始化相同结构实例。
• 主库配置:修改 dm.ini 启用归档(ARCH_INI=1),配置 dmarch.ini 为 REALTIME 模式,启动实例与守护进程(./dmserver & ./dmwatcher)。
• 备库配置:通过主库备份集恢复初始数据,修改 dmarch.ini 为备库模式(ARCH_TYPE=STANDBY),启动实例与守护进程。
• 集群验证:在监视器执行show instance,显示 “PRIMARY INSTANCE NORMAL, STANDBY INSTANCE SYNC” 即为部署成功。
(二)日常运维核心要点
• 状态监控:通过 DEM 可视化工具或 dmmonitor 命令,重点监控 “SYNC_STATUS”(同步状态)与 “LSN 差值”,确保备库 APPLY_LSN 与主库 FILE_LSN 差值<100。
• 日志管理:定期清理归档日志(保留 30 天),监控守护进程日志(默认路径/dm8/log),重点关注 “ARCHIVE INVALID”“INSTANCE DOWN” 等关键字。
• 故障演练:每季度执行主备切换演练,记录切换耗时(目标<30 秒),验证切换后数据一致性(可通过DBMS_CRYPTO包校验数据哈希值)。
• 版本升级:采用 “滚动升级” 策略:先升级备库→切换主备→升级原主库,避免业务中断,优化了日志重演性能,升级后可降低高并发下的日志堆积风险。
五、版本演进与技术优势
达梦数据守护历经多版本迭代,核心改进集中在三个方向:
• 易用性提升:统一实时主备、MPP 主备等方案的配置参数,提供 SHELL 脚本、DEM 工具实现自动化部署,搭建效率提升 60%。
• 性能优化:采用预解析、预加载技术优化备库日志重演性能,解决高并发场景下的日志堆积问题,读写分离集群吞吐量提升 30% 以上。
• 可靠性增强:引入控制文件机制解决组分裂问题,支持备库异常自动隔离与恢复(主库可暂停异常备库同步,待其恢复后自动重连)。
相较于传统方案,达梦高可用体系具备三大核心优势:自主可控(100% 自研核心技术,适配麒麟、统信等国产化生态)、全场景覆盖(从单节点容灾到分布式集群)、高性价比(部署成本较 Oracle RAC 降低 40%,且支持 8 节点集群扩展)。
六、方案选型建议
七、数据中心级高可用解决方案汇总
除以上高可用方案外,达梦也提供数据中心的高可用方案,通过不同的高可用需求实现同城双中心主备,同城双中心双活;以及两地三中心的高可用解决方案。
结语
达梦数据库高可用方案通过 “日志同步 + 智能协同” 架构,实现了数据安全性与系统可用性的平衡。产品持续迭代,不仅解决了组分裂、日志堆积等技术痛点,更通过自动化工具降低了部署运维门槛。在国产化替代浪潮下,其全场景适配能力与自主可控特性,已成为金融、政务等关键领域的首选数据库高可用方案。
https://eco.dameng.com
文章
阅读量
获赞
