news 2026/4/15 20:33:24

DM8使用ODBC和OCI接口连接Oracle

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DM8使用ODBC和OCI接口连接Oracle
  • 环境介绍

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参数的设置,步骤多了,出错的几率就更高了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 18:25:15

elasticsearch设置密码从零实现:新手也能完成的配置

Elasticsearch设置密码从零实现:新手也能完成的配置一个常见的开发陷阱,你中招了吗?想象一下:你刚在服务器上搭好 Elasticsearch,还没来得及喝口水,就收到安全团队的告警邮件——“你的ES实例正暴露在公网&…

作者头像 李华
网站建设 2026/4/15 18:23:15

从零实现:用Altium Designer完成原理图设计

从零开始:用Altium Designer画出第一张专业级原理图你有没有过这样的经历?手握一块开发板,看着密密麻麻的走线和元器件,心里发问:“这东西是怎么设计出来的?”其实,每一块PCB背后,都…

作者头像 李华
网站建设 2026/4/11 18:21:20

虚拟主播声音引擎:驱动数字人进行实时语音交互

虚拟主播声音引擎:驱动数字人进行实时语音交互 在直播电商每分钟都在创造新纪录的今天,一个关键问题逐渐浮现:如何让虚拟主播的声音既像真人一样富有情感,又能随时切换风格、永不疲倦?传统语音合成系统往往需要数天训练…

作者头像 李华
网站建设 2026/4/13 10:52:46

适用于生产交付的Allegro Gerber输出参数设置

从设计到制造:Allegro中一套真正“拿得出手”的Gerber输出配置实战指南在硬件工程师的职业生涯里,最怕听到的一句话不是“功能不对”,而是——“你们给的板子文件有问题,钻孔和线路对不上。”更扎心的是,这问题往往出现…

作者头像 李华
网站建设 2026/4/13 13:34:39

快速理解fastbootd在A/B分区中的作用

fastbootd 如何重塑 A/B 分区的刷机体验?你有没有遇到过这样的场景:OTA 升级进行到一半,手机突然黑屏十几分钟,提示“正在优化应用”?或者想刷个测试镜像,却因为设备分区结构复杂而不敢下手,生怕…

作者头像 李华