ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

达梦数据库同步工具(DMDRS)常见报错汇总与解决方案

达梦数据库同步工具(DMDRS)常见报错汇总与解决方案 一、内置库无法正常启动DM的内置库是在安装包dmdrs_rev231374_x86_rh6_64_20260909.bin中的解压之后可以直接使用默认为企业版。但是如果主机原本安装了DM数据库并且配置了环境变量内置库会受到环境变量的影响。解决方案先注释掉环境变量再重新启动安装向导。注释如下vi ~/.bash_profile source ~/.bash_profile安装完之后取消注释环境变量。内置库依旧可以正常使用。二、安装向导无法识别dm.key之前我们的安装向导无法正常读取dmdrs.key所以我们通过DFM来更新dmdrs.key。步骤如下首先将代理放在agent的目录下面为了让agent绝对可以读到drs.key。然后点击许可证管理远程读取许可证然后选择对应的代理进行上传。然后点击网络拓扑类似图中点击批量更新DMDRS服务许可证。进入console控制台输入show lic可以查看key的有效日期。三、DFM资源紧张DFM主机资源紧张内存和CPU经常打满导致DFM平台运行经常卡顿。DFM推荐使用资源为至少8G4核的机器。不足需要请求扩充临时使用像如下修改配置。修改DFM服务启动脚本cd /home/dmdba/dmdrs5/web vi DmServiceDFDB根据DFM主机的资源做出如下调整调整初始分配内存为1024mb最大分配为2048mb。注意系统资源扩容后记得重新改回来。四、DFM连接ORACLE超时现象为DFM连接ORACLE时一直操作timeout即超时。解决方案网络正常数据库连接信息正常的情况下调大超时判定时间解决了本次问题。修改DMDFM的配置参数调整connectTime: 10000为connectTime: 30000vi /home/dmdba/dmdrs5/config/applaction.yml设置connectTime为30000。五、同步链路字典错误报错处理方案针对不同的字典报错因为初次拉取装载字典时可能会拉取失败主要观察同步列表中是否存在存在就可以忽略。到下方这个界面查一下如果存在就可以忽略这种报错。六、同步链路SQL执行失败处理方案报错为违反唯一性约束因为ORACLE中原本就有数据所以如果同步过来的数据违反了唯一性约束而执行失败是可以理解的。处理方案为根据报错信息去查源端和目的端来查看是否有对应的数据。以下列为例子报错为# 同步执行插入报错 唯一约束错误 2026-09-23 21:17:31 EXE[ERROR]: DRS-9011 执行已经准备好的SQL语句失败 sql: insert into NTMS.T_IA_ALLOCATESCHEMERECDEF(URID,ALLOCATESCHEMEID,ORGID,BANKID,ACCOUNTID,ISDEFAULTALLOCATEACCOUNT,ISACTIVE,CREATEDON,CREATEDBY,LASTMODIFIEDON,LASTMODIFIEDBY,ROWVERSION,DESCRIPTION,TRANSFERORGID,TRANSFERBANKID,TRANSFERACCOUNTID,TENANTID,CAPITALCATEGORYID) values(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16,:17,:18), DB1 ORA-00001: UNIQUE CONSTRAINT (NTMS.IDX_ALLOCATESCHEMERECDEF_AID) VIOLATED查询对应表的DDLCREATE UNIQUE INDEX NTMS.IDX_ALLOCATESCHEMERECDEF_AID ON NTMS.T_IA_ALLOCATESCHEMERECDEF (ALLOCATESCHEMEID, ACCOUNTID);拿出具体冲突的数据Oracle端查到和DM端查到后很明确为原有数据导致的冲突问题如得到类似结果忽略该报错。七、表操作影响行数和预期不一致处理方案表行数影响不一致会直接导致同步链路停止。当前两端数据确实不一致使用增量同步出现这个报错非常正常我们本次可忽略所以目前方案是忽略该报错不要让DRS增量同步停下。解决方案修改参数exec_policy修改之后报该错误不会立刻停止DRS同步。八、动态库文件加载失败libnsl.soLog报错信息# 报错信息: # 2026-09-06 19:20:24 CMP[CMP000006][INFO]: 设置ORACLE环境变量 nls lang: UTF8 # 2026-09-06 19:20:24 CMP[CMP000006][ERROR]: DRS-3009 动态库文件加载失败 file: libdvora.so, code: 0, msg: libnsl.so.1: cannot open shared object file: No such file or directory # 2026-09-06 19:20:24 CMP[CMP000006][ERROR]: DRS-7029 对比环境设置失败进入/dmdata/dmdvs/bin目录下ldd查看发现有两个not foundldd libdvora.so用root搜索find / -name libnsl.so* ll /usr/lib64/libnsl.so*用yum安装安装后恢复正常yum install -y libnsl
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进