为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
前提:Oracle 单机到dm 单机的dblink搭建成功,无问题
将该配置移植到Oracle rac环境后,select * from v$version@DMDB;
会报错
Can't open lib '/home/oracle/dmdata/bin/libdodbc.so' : file not found (01000)
RAC 的监听在grid用户下,libdodbc.so放到了oracle用户下,两个用户都已配通ODBC连接;
SYS > select * from v$version@DMDB;
select * from v$version@DMDB
*
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[unixODBC]Encryption module failed to load {HY000,NativeErr = -70089}
ORA-02063: preceding 2 lines from DMDB
报错变为:Encryption module failed to load(加密模块加载失败)
oracle官方文档没有说支持到达梦的dblink。你试验出单机成功,不等于有问题了oracle给你解释啊。我们是使用者,原厂都不支持的技术,生产环境上线很久才发现问题,谁解决啊。建议使用任何技术,都要参数官方文档。
你好,通过测试,我已解决了这个问题,希望对你有帮助,我的测试环境为 11.2.0.4 rac -> dm v8 ,报错场景与你一致。
我通过测试发现,这个问题是由于,dmclient 安装路径 grid用户没有读取权限(因为rac中监听的程序是由grid用户发起的),这个权限不只是 dmdbms子目录,也包括其父目录。当我单独安装dmdbms 到/home下,该问题就解决了,当然更建议创建到/u01下。
外部链接对象(LINK)是 DM 中的一种特殊的数据库实体对象,它记录了远程数据库的连接和路径信息,用于建立与远程数据的联系。目前oracle官方没有文档说明支持到达梦的dblink。