☰
达梦数据库同步工具(DMDRS)常见报错汇总与解决方案
2026/9/29 13:00:48 网站建设 项目流程

一、内置库无法正常启动

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推荐使用资源为至少8G,4核的机器。不足需要请求扩充,临时使用像如下修改配置。

修改DFM服务启动脚本:

cd /home/dmdba/dmdrs5/web vi DmServiceDFDB

根据DFM主机的资源做出如下调整,调整初始分配内存为1024mb,最大分配为2048mb。

注意:系统资源扩容后记得重新改回来。

四、DFM连接ORACLE超时

现象为DFM连接ORACLE时一直操作timeout,即超时。

解决方案:网络正常,数据库连接信息正常的情况下,调大超时判定时间,解决了本次问题。

修改DMDFM的配置参数,调整connectTime: 10000为connectTime: 30000:

vi /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

查询对应表的DDL:

CREATE UNIQUE INDEX "NTMS"."IDX_ALLOCATESCHEMERECDEF_AID" ON "NTMS"."T_IA_ALLOCATESCHEMERECDEF" ("ALLOCATESCHEMEID", "ACCOUNTID");

拿出具体冲突的数据,

Oracle端查到

和DM端查到后,

很明确,为原有数据导致的冲突问题,如得到类似结果,忽略该报错。

七、表操作影响行数和预期不一致处理方案

表行数影响不一致会直接导致同步链路停止。

当前两端数据确实不一致,使用增量同步出现这个报错非常正常,我们本次可忽略,所以目前方案是忽略该报错,不要让DRS增量同步停下。

解决方案:修改参数exec_policy,修改之后报该错误不会立刻停止DRS同步。

八、动态库文件加载失败(libnsl.so)

Log报错信息:

# 报错信息: # 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 found:

ldd libdvora.so

用root搜索:

find / -name libnsl.so* ll /usr/lib64/libnsl.so*

用yum安装,安装后恢复正常:

yum install -y libnsl

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询