尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

DMDRS 数据同步与 DMDVS 校验服务部署、验证及故障复盘

DMDRS 数据同步与 DMDVS 校验服务部署、验证及故障复盘 本文记录 DM8 环境中 DMDRS 的源端/目标端部署、全量装载、增量同步和 DMDVS 一致性校验1. DMDRS 简介是什么、做什么、有什么优势DMDRSDM Data Replication Service是达梦数据库提供的数据复制服务用于在源数据库和目标数据库之间传输、装载并持续同步符合配置范围的数据对象和变更。它不是单纯的数据库备份工具而是一条由源端捕获、网络传输、目标端执行组成的同步链路。在本次实验中DMDRS 先完成 EMPLOYEE、ORDERS 等对象的全量装载再继续捕获源端的 CREATE、INSERT、INDEX、UPDATE 等操作使目标端能够获得对应的表结构和数据变化。常见应用方向包括数据迁移、异构或同构环境间的数据同步、容灾建设中的数据复制以及测试环境的数据持续更新具体适用范围仍需结合版本、拓扑和业务要求确认。结合本次 DM8 实验达梦 DMDRS 的主要优势体现在四点一是与 DM8 数据库及 DMDFM 管理体系衔接紧密便于统一查看和管理二是同步对象和操作类型可以按配置筛选能够控制复制范围三是支持全量装载与增量同步组合适合从初始数据切换到持续同步四是控制台和 DRS 命令能够查看运行状态、字典加载和错误信息便于按模块名、服务端口、装载状态逐层定位问题。说明DMDRS 负责复制DMDVS 负责一致性校验DMDFM 负责图形化管理和代理通信。三者相互配合但不能相互替代。2. 方案定位复制、管理与校验分工DMDRS 负责源库到目标库的数据复制。源端的 CPT 模块捕获 DDL/DML目标端 EXEC 模块接收并执行DMDFM 用于图形化配置和服务管理DMDVS 是独立的校验服务用于比较指定对象的数据一致性。这几个组件不能相互替代DMDVS 校验失败不等于 DMDRS 一定停止DMDRS 装载报错也不能靠 DMDVS 自动修复。排查时应先确认是哪一层出现问题。3. 实验环境与端口节点地址实例 / 组件端口源端 drssrc192.168.80.**DRSSRC / instance1 / CPT link15236 / 5345目标端 drsdst192.168.80.**DRSDST / instance2 / EXEC5236 / 5346校验服务部署在 drsdstDMDVS DMDFM Agent5349 / 193455236 是数据库服务端口5345/5346 是 DMDRS 管理端口5349 是 DMDVS 服务端口19345 是 DMDFM Agent。图 DMDRS 与 DMDVS 的实验拓扑图 DMDRS 部署状态页面4. DMDRS 部署教程步骤 1准备目录和数据库源端和目标端分别准备数据库、归档和 DRS 目录统一交给 dmdba:dinstall 管理。初始化数据库后先正常启动、退出一次再进入 DRS 配置阶段。# 源端 drssrc mkdir -p /dmdata/data /dmarch/DRSSRC /data/dmdrs5 chown -R dmdba:dinstall /dmdata /dmarch /data/dmdrs5 chmod -R 755 /dmdata /dmarch /data/dmdrs5 # 目标端 drsdst mkdir -p /dmdata/data /data/dmdrs5 chown -R dmdba:dinstall /dmdata /data/dmdrs5 chmod -R 755 /dmdata /data/dmdrs5数据库两端保持 DM8 版本、操作系统位数、时区和时间一致。源库启用本地归档和逻辑日志目标库准备同版本数据库和 DRS 目标实例。步骤 2先确认服务再配置模块# 源端 ss -lntp | grep :5345 || echo 源端 instance1 未监听 pgrep -af drsvr || echo 源端没有 drsvr # 目标端 ss -lntp | grep :5346 || echo 目标端 instance2 未监听 pgrep -af drsvr || echo 目标端没有 drsvr 当前工程中源端服务名是 instance1CPT 模块名是 link1目标端服务名是 instance2。控制台命令必须使用配置中的实际模块名。 cd /home/dmdba/dmdrs5/INST_DRS/instance1 grep -n name drs.xml grep -nE map|item drs.xml# 典型输出对应# instance1 DMDRS 服务# link1 CPT 模块# DRS_TEST.EMPLOYEEDRS_TEST.EMPLOYEE# DRS_TEST.ORDERSDRS_TEST.ORDERS图 DMDFM 一对一场景中的 DMDRS 两端配置图 DMDFM 中 link1 同步表映射5. 全量装载与增量同步教程步骤 3设置 LSN 与添加同步表CPT 首次启动前先用当前源库日志位置设置增量起点。随后使用真实模块名 link1 添加表并执行 CREATE、INSERT、INDEX 等装载掩码。# 源端 drssrc / drcsl cd /home/dmdba/dmdrs5/INST_DRS/instance1 ./drcslconnect 127.0.0.**:5345 alter link1 set lsn alter link1 add table sch.nameDRS_TEST and tab.nameEMPLOYEE CREATE|INSERT|INDEX alter link1 add table sch.nameDRS_TEST and tab.nameORDERS CREATE|INSERT|INDEX show link1 load table running show link1 load table error 小数据量实验中running 状态可能很快消失因此必须同时到目标数据库检查表和行数。装载完成且无错误后再执行 start link1。 start link1 show mode # 目标端 DIsql SELECT OWNER, TABLE_NAME FROM DBA_TABLES WHERE OWNERDRS_TEST AND TABLE_NAME IN (EMPLOYEE,ORDERS); SELECT COUNT(*) FROM DRS_TEST.EMPLOYEE; SELECT COUNT(*) FROM DRS_TEST.ORDERS;图 DMDRS 装载状态与同步表结果步骤 4执行 DDL 与 DML 实测对已在映射范围内的 EMPLOYEE 增加 ARTICLE9_TAG 字段可以验证 DDL 捕获和目标端字段变化。材料中还按教程记录了 DMDRS.TEST 的建表、插入和索引测试。新测试表必须先加入同步映射否则只能证明源端 SQL 成功。-- 已映射表的 DDL 测试源端 ALTER TABLE DRS_TEST.EMPLOYEE ADD ARTICLE9_TAG VARCHAR2(30); -- 教程测试表源端 DMDRS 用户 CREATE TABLE TEST (ID INT, NAME VARCHAR2(20)); INSERT INTO TEST VALUES (1, PP); INSERT INTO TEST VALUES (3, AA); COMMIT; CREATE INDEX TESTINDEX ON TEST(ID);图 DMDFM 中 DDL 同步配置图 源端对 EMPLOYEE 执行 ALTER TABLE 并确认字段图 源端创建 DMDRS.TEST、插入数据并创建索引图 目标端确认 DMDRS 用户存在图 目标端自动出现 TEST 表并查询两行数据图 源端继续向 TEST 写入同步测试数据图 目标端查询到新增数据图 目标端确认 TESTINDEX 状态为 VALID步骤 5验证增量 UPDATE-- 源端 UPDATE DMDRS.TEST SET NAMEPP_UPDATE WHERE ID1; COMMIT; -- 目标端 SELECT * FROM DMDRS.TEST ORDER BY ID;图 源端执行 UPDATE 并提交图 目标端查询更新后的记录验证链路应保持单向源端执行 DDL/DML目标端只查询结果。目标端手工修改同步表会引入新的差异影响后续 DMDVS 校验。步骤 6部署并执行 DMDVS 校验DMDVS 安装在 drsdst复用 192.168.80.**:19345 的 DMDFM Agent服务端口为 5349缓存目录为 /home/dmdba/dmdvs_cacheDM8 依赖路径为 /home/dmdba/dmdbms/bin。# drsdst mkdir -p /home/dmdba/dmdvs /home/dmdba/dmdvs_cache chmod 755 /home/dmdba/dmdvs /home/dmdba/dmdvs_cache ss -lntp | grep -E :19345 |:5349 |:5236 || true配置项本次值主机 / 服务192.168.80.**/ 校验服务安装 / 缓存/home/dmdba/dmdvs / /home/dmdba/dmdvs_cacheAgent192.168.80.**:19345复用已有代理服务端口5349校验规则DRS_TEST.EMPLOYEEDRS_TEST.EMPLOYEEDRS_TEST.ORDERSDRS_TEST.ORDERSDMDVS 校验成功的判定是服务在线、规则能够识别对象、任务执行完成且差异为 0。校验成功后仍应保留任务记录和结果截图作为部署验收证据。图 DMDVS 远程安装成功页面图 DMDVS 校验服务详情页面图 DMDVS 校验任务成功页面7. 常见错误与定位顺序错误 / 现象根因定位与处理DRS-3008模块未找到把教程中的 cpt_dm8 当成当前模块名grep drs.xml用实际的 link1 替换命令中的模块名DRS-5125离线字典加载失败未完成 add table或字典未被 link1 加载show dictset lsnadd table检查装载后再 start link1DRS-6165目标端表已存在重复装载且未使用 DROP先查询对象实验表可清场重装业务表不要直接 DROP页面显示 0 张表服务、模块、字典或页面状态不一致先查 5345/5346、drsvr、show mode、show dict不要先反复点识别表DMDVS 校验失败代理、服务端口或校验规则不一致先查 19345/5349再核对 DRS_TEST 模式和表名规则操作原则任何有副作用的操作先查状态先确认主机、用户和提示符再执行命令源端做写操作目标端做查询遇到错误先看错误码对应的层级不要把 DMDVS、DMDFM 和 DMDRS 的问题混为一谈。8. 验收清单检查项通过标准源端 instance15345 监听drsvr 存在link1 运行目标端 instance25346 监听drsvr 存在目标表可查询全量装载目标端表结构和数据量与源端一致增量同步INSERT / UPDATE / DELETE 在目标端得到相同结果DDL 同步ARTICLE9_TAG 或 TESTINDEX 在目标端可核对DMDVS校验任务成功差异数据为 0参考资料达梦技术文档《DMDRS 产品介绍》产品介绍 | 达梦技术文档达梦技术文档《DMDRS 安装部署》安装部署 | 达梦技术文档达梦技术文档《DMDRS 功能特性》功能特性 | 达梦技术文档达梦技术文档《DMDFM 平台介绍》平台介绍 | 达梦技术文档达梦数据库《达梦数据校验软件 DMDVS》达梦数据校验软件 | 达梦数据库达梦技术文档《DMDRS 常见问题》DMDRS常见问题 | 达梦技术文档达梦技术社区《DMDRS 安装文档》DMDRS安装文档 | 达梦技术社区THE END达梦社区地址https://eco.dameng.com
返回列表