西藏自治区网站建设_网站建设公司_虚拟主机_seo优化
2026/1/8 15:33:26 网站建设 项目流程
  • 环境介绍

IP地址:端口

192.168.116.143:5236

192.168.116.149:1521

操作系统

Kylin-Server-V10-SP3-2403-Release-20240426-X86_64

CentOS-7-x86_64-DVD-2009

数据库

dm8_20251021_x86_kylin10_sp3_64

oracle11g

Oracle Instant Client包版本:12.2

Oracle Instant Client包下载地址:Oracle Instant Client Downloads

  • ODBC

执行odbcinst -j查看unixODBC的版本

2.1下载驱动

下载上传并解压得到如下:

2.2配置依赖

cd instantclient_12_2进入目录

ldd libsqora.so.12.1检查依赖

查找缺失驱动,放置/usr/lib64目录下

find / -namelibmql1.so

cp ./libmql1.so /usr/lib64

若仍缺少驱动,通过yum进行下载安装后继续连接

注:重点为红框内驱动

2.3配置ODBC源

2.3.1创建tnsnames.ora文件

tnsnames.ora文件可参考oracle数据库所在服务中的tnsnames.ora文件。

tnsnames.ora文件在与驱动在同一目录下,便于下文参数的设置。

2.3.2 配置$ORACLE_HOME、$TNS_ADMIN和$LD_LIBRARY_PATH

配置TNS_ADMIN系统环境变量

vim /etc/profile

文件最后加上以下语句:

export ORACLE_HOME=/oracleclient/instantclient_12_2/

exportLD_LIBRARY_PATH=/oracleclient/instantclient_12_2/

export TNS_ADMIN=/usr/lib/oracle/12.2/client64

执行source /etc/profile使配置生效。

2.3.3配置odbcinst.ini文件

2.3.4配置odbc.ini文件

2.4验证配置

isql ORA11G SCOTT oracle

重启达梦数据库,加载dm通过dblink查询oracle数据库数据所需的文件。

2.5 创建DBLINK

在DM管理工具或disql中执行以下语句

CREATE OR REPLACE LINK LINKORA1CONNECT 'ODBC' WITH "Oracle用户" IDENTIFIED BY "Oracle用户密码" USING 'DSN名字';

select count(*) from USER_TABLES@LINKORA1;

结果示例如下。

  • OCI

3.1 下载Oracle客户端驱动(Instant Client)

下载上传并解压得到如下:

3.2配置依赖

cd instantclient_12_2进入目录

ldd libclntsh.so.12.1检查依赖

查找缺失驱动,放置/usr/lib64目录下

find / -namelibmql1.so

cp ./libmql1.so /usr/lib64

若仍缺少驱动,通过yum进行下载安装后继续连接

复制所有.so文件到DM安装目录的bin目录下

cp ./instantclient_12_2/*.so* /home/dmdba/dmdbms/bin

给libclntsh.so.12.1文件改名成libclntsh.so

mv /home/dmdba/dmdbms/bin/libclntsh.so.12.1 /home/dmdba/dmdbms/bin/libclntsh.so

重启达梦数据库,加载dm通过dblink查询oracle数据库数据所需的文件。

3.3配置$ORACLE_HOME

vim /etc/profile进入环境变量文件

export ORACLE_HOME=/oracleclient/instantclient_12_2/

source /etc/profile使环境变量生效

3.4创建DBLINK

在DM管理工具或disql中执行以下语句

CREATE OR REPLACE LINK LINKORA CONNECT 'ORACLE' WITH "Oracle用户" IDENTIFIED BY "Oracle用户密码" USING 'Oracle服务器ip地址:1521/Oracle服务名';

select * from ALL_DB_LINKS;

结果如下。

select count(*) from USER_TABLES@LINKORA;

结果示例如下。

  • 总结

推荐使用OCI接口来创建DBLINK连接ORACLE,相对来说,使用OCI接口来创建DBLINK连接ORACLE更加简单,步骤更少,而且可以避免由于版本不匹配导致的连接失败问题。

使用ODBC接口创建DBLINK对比使用OCI接口,多了ODBC配置文件的创建、tnsname.ora文件的创建及TNS_NAME参数和LD_LIBRARY_PATH参数的设置,步骤多了,出错的几率就更高了。

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

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

立即咨询