达梦 DMHS/DRS 数据同步技术解析
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台达梦数据库产品体验站,DM8在线试玩,达梦数据库全系列产品免费下载,官方权威的快速上手文档和产品手册,最活跃的达梦技术社区,面向全行业ISV厂商免费的云适配服务。https://eco.dameng.com
一、产品概述
达梦数据复制软件(DMDRS,原 DMHS)是一款面向同构 / 异构数据库的高性能实时同步工具,核心解决数据迁移、实时同步、容灾备份与数据分发场景需求,支持 Oracle、DM、MySQL 等主流数据库,适配一对一、一对多、双向等多种拓扑结构,对源库无侵入、系统开销低。
二、数据同步核心原理
DMDRS 基于数据库日志解析技术实现数据同步,全程不依赖触发器,核心分为全量同步与增量同步两阶段,保障数据一致性与实时性。
- 全量同步(初始化):源库批量导出存量数据,通过网络传输至目标库,完成初始数据对齐,适用于静态数据迁移场景。
- 增量同步(实时同步):持续捕获源库在线 / 归档日志(Oracle Redo 日志、DM RLOG 日志),解析 DML/DDL 操作,以事务为最小单位同步至目标库,确保事务完整性,支持断点续传,故障恢复后自动接续同步。
- 核心优势:非侵入式捕获、秒级延迟、事务一致、断点续传、拓扑灵活。
三、核心模块(CPT/NET/EXEC)工作机制
DMDRS 采用模块化设计,核心模块包括CPT、NET、EXEC,搭配管理模块 MGR 协同工作,各模块职责清晰、高效联动。
1. CPT(捕获模块,源端核心)
- 定位:源端数据 “采集器”,负责全量数据获取与增量日志捕获解析。
- 机制:实时监控源库日志,通过优化算法扫描日志增量,解析操作类型、事务 ID、数据变更内容,转换为内部统一消息格式,按事务封装后投递至 NET 模块;支持过滤、映射等预处理,保障数据精准传输。
2. NET(传输模块,源 / 目标端均部署)
- 定位:数据 “传输通道”,负责源端发送、目标端接收,保障传输可靠。
- 机制:源端 NET 接收 CPT 数据,完成压缩、加密、CRC 校验后,通过 TCP/IP 网络传输;目标端 NET 接收数据,校验完整性并还原,异常时自动重传,确保数据不丢失、不重复。
3. EXEC(执行模块,目标端核心)
- 定位:目标端数据 “入库器”,负责数据落地与一致性保障。
- 机制:接收 NET 模块数据,按事务顺序解析执行,批量写入目标库;记录执行位点,支持断点续传;并行入库提升性能,确保目标库与源库数据完全一致。
4. MGR(管理模块)
负责模块启停、配置加载、状态监控、命令执行,是整个同步系统的 “控制台”。
四、Oracle 与 DM 端部署核心配置与权限
1. Oracle 源端(日志捕获必备)
核心配置(保障日志完整可解析)
- 开启补充日志:确保日志包含完整字段信息,支持增量解析。
- 关闭回收站:避免日志解析干扰。
- 开启归档模式:保障在线日志切换后,归档日志可被 CPT 捕获。
同步用户权限(最小权限原则)
- 基础连接权限:连接数据库、创建会话。
- 日志访问权限:查询系统字典、日志视图,读取日志数据。
- 数据操作权限:查询任意表、锁定表,保障数据捕获与一致性。
2. DM 目标端(数据入库必备)
核心配置
- 开启归档模式:适配同步机制,支持故障恢复。
- 字符集一致:与 Oracle 源库字符集匹配,避免乱码。
- 启用逻辑追加日志:保障事务执行顺序,提升同步稳定性。
同步用户权限
- 资源权限:创建会话、使用表空间。
- 数据操作权限:增删改查任意表、创建表,保障数据落地。
- 日志查询权限:访问系统日志视图,辅助同步监控与故障排查。
五、总结
DMDRS(原 DMHS)以日志解析 + 模块化协同为核心,通过 CPT 捕获、NET 传输、EXEC 执行的全链路设计,实现 Oracle 与 DM 等数据库的高效、可靠数据同步。其非侵入式架构、事务一致性保障、灵活拓扑适配,使其广泛应用于数据迁移、容灾备份、实时数据共享等核心业务场景,是异构数据库同步的核心工具。
