达梦数据库-达梦数据库中link链接访问oracle 19c/11g-记录总结

达梦数据库-达梦数据库中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配置类似

zroot@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

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/

相关推荐
这个DBA有点耶6 小时前
从症状到根因:数据库监控指标的分层方法与静态/动态阈值策略
数据库·mysql·代码规范
SelectDB6 小时前
时间旅行与快照能力速查:Doris 侧三条落地路径
大数据·数据库·数据分析
SelectDB6 小时前
云数仓成本结构拆解速查:五层计费 vs Doris / 托管形态
大数据·数据库·数据分析
SelectDB6 小时前
什么场景能承接与建议保留:Doris vs Snowflake 边界速查
大数据·数据库·数据分析
这个DBA有点耶8 小时前
DELETE没删多少数据,表却越来越大——InnoDB删除空洞与页合并失效的根因
数据库·mysql·代码规范
ly768912 小时前
PostgreSQL 备份恢复策略:pg_basebackup、WAL 归档与 PITR 在企业 Java 系统中的落地
java·数据库·postgresql·pitr·pg_basebackup·wal 归档
小羊没烦恼!12 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
注塑机数据采集联网12 小时前
如何解决注塑机数据采集联网对接MES系统数据WiFi传输数据不稳问题
大数据·数据库·物联网·数据挖掘·数据分析
黄俊懿12 小时前
【架构师从入门到进阶】第六章:服务集群优化——第八节:线程数公式
java·服务器·数据库·分布式·性能优化·架构·系统架构