达梦数据库-达梦数据库中link链接访问oracle 19c/11g-记录总结
达梦通过LINK访问Oracle数据库有两种方式:
一种是通过Oracle oci接口,一种是通过ODBC数据源的方式,推荐使用Oralce OCI的方式去访问Oracle数据库。
示例步骤
示例环境
达梦端操作系统: Kylin Linux Advanced Server V10 (Halberd)
达梦数据库版本:DM V8 03134284368-20260306-316451-20149 Pack62
Oracle数据库:Oracle Database 19c Enterprise Edition Release 19.0.0.0.0- Production
Oracle数据库: 11g Express Edition Release 11.2.0.2.0 - 64bit Production
1 环境准备
略
准备oracle 19c数据库,创建测试表system.test,system.t01
准备oracle 11g数据库,创建测试表system.test1
下载sqldeveloper访问测试19c
https://www.oracle.com/database/sqldeveloper/technologies/download/
验证可以正常远程登录访问
下载达梦SQLark百灵连接访问测试
--19c 192.168.118.158 1521 orclcdb
下
--11g 192.168.118.171 1522 xe

1OCI方式
1.1下 载oralce客户端 instantclient-basic-linux并上传到达梦数据库机器
https://www.oracle.com/database/technologies/instant-client/downloads.html
https://www.oracle.com/cn/database/technologies/instant-client/linux-x86-32-downloads.html
mkdir -p /app/
unzip instantclient-basic-linux.x64-19.30.0.0.0dbru.zip -d /app/
1.2配置环境变量
vi /home/dmdba/.bash_profile
--新增环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/instantclient_19_30
source /home/dmdba/.bash_profile
1.3查看是否缺少依赖
su - dmdba
ldd /app/instantclient_19_30/libclntsh.so
如果缺失

ln -s /usr/lib64/libnsl.so.2.0.1 /usr/lib64/libnsl.so.1
1.4重启达梦数据库
DmServiceDAMENG restart
1.5sysdba登录数据库 创建LINK访问19c
CREATE OR REPLACE LINK "SYSDBA"."ORACLE_TEST" CONNECT 'ORACLE' WITH "SYSTEM" IDENTIFIED BY "123456" USING '192.168. 118 .1 58 :1521/ORCLCDB';
select * from "SYSTEM"."TEST"@ORACLE_TEST;
insert into "SYSTEM"."TEST"@ORACLE_TEST values(2,'test2');
commit;
select * from "SYSTEM"."TEST"@ORACLE_TEST;
select sysdate from DUAL@ORACLE_TEST;

这里注意用户名大写,否则使用时会报错:
-6033: 第1 行附近出现错误:DBLINK连接丢失
1.6sysdba登录数据库 创建LINK访问11g
CREATE OR REPLACE LINK "SYSDBA"."ORACLE11G_TEST" CONNECT 'ORACLE' WITH "SYSTEM" IDENTIFIED BY "oracle" USING '192.168.118.171:1522/XE';
select * from "SYSTEM"."TEST1"@ORACLE11G_TEST;
insert into "SYSTEM"."TEST1"@ORACLE11G_TEST values(2);
commit;
select * from "SYSTEM"."TEST1"@ORACLE11G_TEST;
select sysdate from DUAL@ORACLE11G_TEST;
select * from V$VERSION@ORACLE11G_TEST;

2ODBC方式
2.1下载解压 instantclient-basic-linux 和 instantclient-odbc-linux
--下载、上传到/dmsoft解压
unzip instantclient-basic-linux.x64-19.30.0.0.0dbru.zip -d /app
unzip instantclient-odbc-linux.x64-19.30.0.0.0dbru.zip -d /app
--新增LD_LIBRARY_PATH环境变量路径/app/instantclient_19_30
vi /home/dmdba/.bash_profile
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/app/instantclient_19_30"
2.2编译 安装ODBC
--上传unixODBC-2.3.0.tar.gz解压后编译安装
tar -xvzf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0/
./configure
make
make install
--检查依赖是否正常
ldd /app/instantclient_19_30/libsqora.so.19.1

2.3配置tnsnames.ora,并配置TNS_ADMIN系统环境变量
vi /app/instantclient_19_30/network/admin/tnsnames.ora
ORCLCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.118.158)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLCDB)
)
)
#配置TNS_ADMIN系统环境变量
vim /etc/profile
export TNS_ADMIN=/app/instantclient_19_30/network/admin
source /etc/profile
注:一定要配置,否则执行isql -v ORA19时一直卡住。
2.4配置odbc相关参数-以19c为示例,11g配置类似
z[root@localhost ~]# odbcinst -j

root@loaclhost unixODBC-2.3.0\]# vi /usr/local/etc/odbcinst.ini \[Oracle ODBC1930
Description = Oracle ODBC Driver
DRIVER = /app/instantclient_19_30/libsqora.so.19.1
root@loaclhost unixODBC-2.3.0\]# vi /usr/local/etc/odbc.ini \[ORA19
DSN = 192.168.118.158:1521
Driver = Oracle ODBC1930
ServerName = ORCLCDB
UserID=SYSTEM
Password=123456
TCP_PORT=1521

root@loaclhost unixODBC-2.3.0\]# isql -v ORA19  \[root@loaclhost unixODBC-2.3.0\]# su - dmdba \[dmdba@loaclhost \~\]$ isql -v ORA19 #### 2.5示例-**达梦中创建** **LINK** **访问ORACLE 19c使用** **create or replace link "LINKODBC" connect 'ODBC' with "SYSTEM" identified by "123456" using 'ORA19';** select \* from "SYSTEM"."T01"@LINKODBC; --查询link信息 select \* from DBA_DB_LINKS;   注:如果报错第1 行附近出现错误\[-6033\]:DBLINK连接丢失,达梦数据库要重启下。 更多达梦数据库运维指南、在线文档、相关资料、社区在线提问以及技术分享 访问 [https://eco.dameng.com/](https://eco.dameng.com/ "https://eco.dameng.com/")