Oracle通过DBLINK访问达梦数据库
创始人
2024-01-13 02:12:08

环境需求

需要安装配置以下相关软件:

1、Oracle Gateways

2、ODBC数据源(gateway机器)

3、达梦数据库软件(gateway机器)

安装配置

Windows环境

安装达梦数据库软件

安装步骤省略,可以参考DM 数据库快速上手指南 | 达梦技术文档 (dameng.com)

Windows ODBC数据源配置

配置ODBC数据源名称为DM8DSN (后面gateway的initxxx.ora文件要用到)

image-20211123114321371

image-20211123114433393

安装Oracle Gateways

安装比较简单,安装组件选择ODBC

image-20211123105026831

由于Oracle gateways与数据库服务器安装在同一台机器,所以本次这里就不再进行监听创建(也可以创建),可以在配置好gateway相关配置文件后,在现有的Oracle数据库监听文件中添加gateway的监听。如果gateway与Oracle数据库服务器不在同一台,则这里需要创建gateway的监听。

image-20211123105308575

配置Oracle Gateways

进入到Gateway HOME目录下,本次安装的gateway home目录为C:\app\LW\gateways\11.2.0\tg_1。

主要配置文件目录在HOME目录下的hs/admin目录下:

PS C:\app\LW\gateways\11.2.0\tg_1\hs\admin> ls目录: C:\app\LW\gateways\11.2.0\tg_1\hs\adminMode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2013/10/9     13:29           1147 extproc.ora
-a----         2013/10/9     13:29            327 initdg4odbc.ora
-a----        2021/11/23     10:51            420 listener.ora.sample
-a----        2021/11/23     10:51            253 tnsnames.ora.sample

主要配置文件和模板文件内容如下:

1、initdg4odbc.ora(主要配置文件)

注意:文件名init后面接的是实例名,在监听文件中添加gateway监听信息时指定的SID_NAME

PS C:\app\LW\gateways\11.2.0\tg_1\hs\admin> cat .\initdg4odbc.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC#
# HS init parameters
#
HS_FDS_CONNECT_INFO = 
HS_FDS_TRACE_LEVEL = #
# Environment variables required for the non-Oracle system
#
#set =

2、Gateway监听配置模板文件,在Oracle数据库服务器上已有创建监听的情况下,将SID_DESC那块内容复制到Oracle监听文件的SID_LIST下。

PS C:\app\LW\gateways\11.2.0\tg_1\hs\admin> cat .\listener.ora.sample
# This is a sample listener.ora that contains the NET8 parameters that are
# needed to connect to an HS AgentLISTENER =(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(SID_NAME=dg4odbc)(ORACLE_HOME=C:\app\LW\gateways\11.2.0\tg_1)(PROGRAM=dg4odbc)))#CONNECT_TIMEOUT_LISTENER = 0

3、tnsnames.ora配置模板文件,可以将文件中的内容添加到Oracle服务器的tnsnames.ora文件中

PS C:\app\LW\gateways\11.2.0\tg_1\hs\admin> CAT .\tnsnames.ora.sample
# This is a sample tnsnames.ora that contains the NET8 parameters that are
# needed to connect to an HS Agentdg4odbc  =(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=dg4odbc))(HS=OK))
配置gateway initdg4dm8.ora文件

本次这里采用的是非默认的文件,复制initdg4odbc.ora文件并重命名为initdg4dm8.ora,配置内容如下:

PS C:\app\LW\gateways\11.2.0\tg_1\hs\admin> cat .\initdg4dm8.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC#
# HS init parameters
#
HS_FDS_CONNECT_INFO = DM8DSN   ----配置的ODBC数据源名称
HS_FDS_TRACE_LEVEL = OFF       ----调试排错的时候可以开启trace#
# Environment variables required for the non-Oracle system
#
#set =
配置listener.ora监听文件

本次是直接在Oracle数据库服务器上安装的gateway,直接在现有数据库监听配置文件中添加gateway监听信息。

本机ORACLE_HOME为:C:\app\LW\product\11.2.0\dbhome_1

本机Oracle数据库监听配置文件路径:ORACLE_HOME/network/admin,

添加内容如下:

PS C:\app\LW\product\11.2.0\dbhome_1\NETWORK\ADMIN> cat .\listener.ora
# listener.ora Network Configuration File: C:\app\LW\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = C:\app\LW\product\11.2.0\dbhome_1)(PROGRAM = extproc)(ENVS = "EXTPROC_DLLS=ONLY:C:\app\LW\product\11.2.0\dbhome_1\bin\oraclr11.dll"))(SID_DESC=(SID_NAME=dg4dm8)      ---SID_NAME对应gateway参数配置文件后面的名称init+SID_NAME.ora(ORACLE_HOME=C:\app\LW\gateways\11.2.0\tg_1)(PROGRAM=dg4odbc)      ---这里表示配置的是ODBC网关))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = LeeWen)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))ADR_BASE_LISTENER = C:\app\LW

然后,重启Oracle数据库监听。监听正常重启后,可以看到监听中已注册dg4dm8.

image-20211123120638863

配置tnsnames.ora文件

在ORACLE_HOME/network/admin/tnsnames.ora文件中添加如下内容:

dg4dm8  =(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=LeeWen)(PORT=1521))(CONNECT_DATA=(SID=dg4dm8))(HS=OK)        ---这里表示连接的是异构数据库) 

添加内容可以从之前Gateway安装后的模板文件中拷贝然后修改,内容中的SID与监听中配置的SID要相同,网络服务名可以自定义。

Oracle 数据库中创建DBLINK

达梦数据库用户为LINK_USER,密码为123456789

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> create public database link LINK_DM8 connect to LINK_USER identified by "123456789" using 'dg4dm8';数据库链接已创建。SQL> select * from test@link_dm8;BANNER
--------------------------------------------------------------------------------
ID_CODE
--------------------------------------------------------------------------------
DM Database Server 64 V8
1-2-70-21.09.24-147898-10028-ENT  Pack2DB Version: 0x7000c
1-2-70-21.09.24-147898-10028-ENT  Pack2

创建成功,可以正常访问达梦数据库。

Linux环境

Linux环境上的达梦数据库软件安装以及Oracle Gateways安装配置,与Windows环境没有太大区别。

Linux环境上配置达梦数据库ODBC源可以参考达梦DBLINK之DM访问Oracle配置步骤 | 达梦技术社区 (dameng.com) 中的ODBC数据源配置。

简单测试总结

1、insert into 远程数据库表 select * from本地表

Oracle端不支持,报错:ORA-02025: SQL 语句的所有表均必须在远程数据库中

image-20211123143154842

2、insert into 本地表 select * from 远程数据库表

支持,但是需要注意本地表字段类型与远程数据库表字段类型匹配。

image-20211123143535303

同样,create table 本地表 as select * from 远程数据库表;也是可以正常执行。

image-20211123144340114

3、触发器

在触发器中使用DBLINK访问表也存在一些限制。

更多资讯请上达梦技术社区了解:https://eco.dameng.com

相关内容

热门资讯

demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...