Oracle通过DBLINK访问达梦数据库

article/2025/9/13 9:07:06

环境需求

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

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 = <odbc data_source_name>
HS_FDS_TRACE_LEVEL = <trace_level>#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>

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 <envvar>=<value>
配置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


http://chatgpt.dhexx.cn/article/Qs7QyaAO.shtml

相关文章

关于dblink的使用

文章目录 前言一、基本信息二、dblink的类型及拥有者三、dblink创建所需权限四、基本语法创建dblinkdblink查询dblink删除dblink使用 五、实例 前言 dblink(Database Link)数据库链接顾名思义就是数据库的链接 &#xff0c;就像电话线一样&#xff0c;是一个通道&#xff0c;当…

DM-DM DBLINK使用配置

简单介绍 DM-DM DBLINK支持3种连接方式创建&#xff0c;分别是&#xff1a;dmmal、dpi、odbc。 其中dpi、odbc属于第三方接口&#xff0c;dmmal属于原生接口。dpi类型dblink为新版本新添加支持&#xff0c;以前版本中不支持。 环境说明 &#xff08;1&#xff09;数据库版本…

达梦DBLINK之DM访问Oracle问题处理

达梦DBLINK之DM访问Oracle配置步骤 下面所有的问题基本上都是在使用ODBC的方式创建DBLINK时遇到&#xff0c;所以强烈建议DM访问Oracle的DBLINK创建时采用Oracle OCI来进行访问。 强烈建议使用Oracle OCI的方式创建DBLINK 强烈建议使用Oracle OCI的方式创建DBLINK 强烈建议使用…

linux oracle dblink,Oracle dblink配置

一. dBlink 简述 dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库…

DBlink 初级使用文档

DBlink 初级使用文档 提示&#xff1a;本文主要帮助新手讲解DBlink的基础用法 文章目录 DBlink 初级使用文档前言一句话解释DBlink是干啥用的 一、DBlink的分类二、DBlink的使用1.使用前查看权限2.创建DBlink3.简单的跨库使用 总结 前言 一句话解释DBlink是干啥用的 实现跨库…

oracle----dblink知识详解

一. dblink定义 dblink(Database Link)数据库链接顾名思义就是数据库的链接&#xff0c;当我们要跨本地数据库&#xff0c;访问另外一个数据库表中的数据时&#xff0c;本地数据库中就必须要创建远程数据库的dblink&#xff0c;通过dblink本地数据库可以像访问本地数据库一样…

DBlink

DBlink 文章目录 DBlink一、dblink是什么&#xff1f;二、Oracle数据库建立dblink1.语句方式2.PL/SQL developer图形界面化方式 三、查看是否成功建立dblink 一、dblink是什么&#xff1f; 个人理解&#xff1a;dblink在一个数据库中访问另一个数据库建立起来的通道。 二、Or…

Oracle dblink详解

Oracle dblink详解 概述 1、database link是定义一个数据库到另一个数据库的路径的对象&#xff0c;database link允许你查询远程表及执行远程程序。在任何分布式环境里&#xff0c;database都是必要的。另外要注意的是database link是单向的连接。 2、在创建database link的…

Web应用快速开发平台 WebBuilder 8.6 企业版发布

WebBuilder是一款强大的企业级Web应用快速开发平台&#xff0c;使用WebBuilder可以快速开发出强大而高效的跨平台的常规应用和移动应用系统。 WebBuilder官网&#xff1a;http://www.geejing.com 社区&#xff1a;http://www.putdb.com/ 版本更新记录 2019-06-21 发布 V8.6 …

使用Eclipse来开发调试WebBuilder项目

使用Eclipse来开发调试WebBuilder项目 下载,安装Groovy插件: 下载地址: Groovy-Eclipse 下载,安装Tomcat插件: 下载地址: Tomca-Eclipse 打开Eclipse,配置Tomcat插件,如下图所示: 新建一个Java Project项目 ​ 命名为WB8,然后在项目的右键菜单里,添加Groovy支持!如下图所示: 打…

Web软件快速开发平台WebBuilder V8.7.1发布

WebBuilder是一款强大&#xff0c;全面和高效的应用开发和运行平台。基于浏览器的集成开发环境&#xff0c;可视化和智能化的设计&#xff0c;能轻松完成常规应用和面向手机的移动应用开发。高效、稳定和可扩展的特点&#xff0c;适合复杂企业级应用的运行。跨平台、数据库和浏…

快速开发平台 WebBuilder 8.4 发布

WebBuilder是一款强大&#xff0c;全面和高效的应用开发和运行平台。基于浏览器的集成开发环境&#xff0c;可视化和智能化的设计&#xff0c;能轻松完成常规应用和面向手机的移动应用开发。高效、稳定和可扩展的特点&#xff0c;适合复杂企业级应用的运行。跨平台、数据库和浏…

Web软件快速开发平台 WebBuilder 8.7 发布

WebBuilder是一款强大&#xff0c;全面和高效的应用开发和运行平台。基于浏览器的集成开发环境&#xff0c;可视化和智能化的设计&#xff0c;能轻松完成常规应用和面向手机的移动应用开发。高效、稳定和可扩展的特点&#xff0c;适合复杂企业级应用的运行。跨平台、数据库和浏…

WebBuilder的下载以及实现连接Oracle数据

WebBuilder的下载网上有许多就不说了。 首先解压压缩包当中的wb文件到Tomcat的webapp当中去如图: 将压缩包中的wb文件解压到Tomcat中 打开wb问价夹创建一个META-INF文件夹 在meta-inf文件夹当中创建一个context.xml文件 context.xml文件党总的内容为: <?xml version"…

webbuilder连接mysql_Webbuilder学习指导书.doc

您所在位置&#xff1a;网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspWeb服务 Webbuilder学习指导书.doc60页 本文档一共被下载&#xff1a;次,您可全文免费在线阅读后下载本文档。 下载提示 1.本站不保证该用户上传的文档完整性&#xff0c;不…

005-WebBuilder使用结构元素进行网页布局

这个太零散了直接在代码上写的注释&#xff0c;第一份前端代码 <!DOCTYPE html> <html> <!--文档基本结构--><head><!--设置section或者page的页眉--><meta charset"utf-8" /><!--meta网页元信息--><title>业务种类…

Webbuilder取值记录

一、从module.serverScript页面返回数据方法&#xff1a; 在B 的dataprovider中写SQL语句&#xff0c;也可以直接在serverScript中写&#xff0c;如果在serverScript中写的话&#xff0c;应该是必须进行app.send();一下&#xff0c;&#xff08;我也没试不send能不能接收&#…

003-Webbuilder应用HTML表单

HTML和控件的混合编程 通常普通的表单界面使用UI控件来构建&#xff0c;对于复杂的界面也可以使用HTML来直接构建&#xff0c;WebBuilder中提供特定的语法可以把相关的控件比如日期控件插入到指定的DOM位置。HTML和控件的混合编程一方面可以使界面的构建更加灵活&#xff0c;另…

004-webbuilder所有布局

viewport viewport表示整个页面的显示视口&#xff0c;他把页面渲染到浏览器的body中&#xff0c;他的大小等于浏览器body的大小,如果整个页面需要占据整个浏览器body(全屏显示)&#xff0c;可以使用该控件作为顶层控件。大部分需要在浏览器中显示的模块通常都会使用viewport作…

001-WebBuilder安装和部署

运行环境 WebBuilder是一款通用平台&#xff0c;但是我们用windows 操作系统&#xff1a;win10JDK环境&#xff1a;1.8服务器&#xff1a;tomcat数据库&#xff1a;SqlServer浏览器&#xff1a;Chrome移动设备&#xff1a;安卓 安装WebBuilder 通常只要复制WebBuilder应用目…