DM-DM DBLINK使用配置

article/2025/9/13 9:06:33

简单介绍

DM-DM DBLINK支持3种连接方式创建,分别是:dmmal、dpi、odbc。
其中dpi、odbc属于第三方接口,dmmal属于原生接口。dpi类型dblink为新版本新添加支持,以前版本中不支持。

环境说明

(1)数据库版本:
DM Database Server 64 V8
DB Version: 0x7000c
03134283904-20220714-165042-20005
(2)数据库信息
本地:端口 5236,实例名DMSERVER01,字符集GB18030
远端:端口 5237,实例名DMSERVER02,字符集GB18030
(3)已配置LD_LIBRARY_PATH环境变量

echo /usr/local/lib > /etc/ld.so.conf.d/libodbc.conf
echo /home/dmdba/dm128/bin > /etc/ld.so.conf.d/dm8.conf
ldconfig

使用配置

dmmal方式

dmmal类型dblink,需要两端数据库设置dm.ini参数MAL_INI=1,并配置相同的dmmal.ini文件,重启数据库服务生效。
创建语法:

---方式1  ---mal_inst_host/mal_inst_port
create link "链接名" connect 'DAMENG' with "用户名" identified by "密码" using '实例IP地址/实例端口号';  
---方式2  ---mal_host/mal_port
create link "链接名" connect 'DAMENG' with "用户名" identified by "密码" using 'MAL IP地址/MAL 端口号';  
---方式3  ---mal_inst_name
create link "链接名" connect 'DAMENG' with "用户名" identified by "密码" using '实例名';  

Step1 两端数据库配置dmmal(操作以及文件内容均相同)

1、设置dm.ini文件中MAL_INI参数值为1

sp_set_para_value(2,'MAL_INI',1);
或者直接vi dm.ini文件修改文件中MAL_INI参数值

2、创建并配置dmmal.ini文件,(dmmal.ini文件路径为dm.ini中的CONFIG_PATH值,默认与系统库目录相同)
vi dmmal.ini 内容如下:

[MAL_INST1]
MAL_INST_NAME=DMSERVER01
MAL_HOST=192.168.238.20
MAL_PORT=62141
MAL_INST_PORT=5236
MAL_INST_HOST=192.168.238.20
[MAL_INST2]
MAL_INST_NAME=DMSERVER02
MAL_HOST=192.168.238.20
MAL_PORT=62142
MAL_INST_PORT=5237
MAL_INST_HOST=192.168.238.20

关于dmmal.ini中相关配置项的含义,参考《DM8 系统管理员手册》。

3、重启两端数据库服务
cd $DM_HOME/bin
./DmServiceXXX restart

Step2 创建DBLINK

本地库访问远端库,在本地库中创建dblink。

################方式1
SQL> create link LINK_M1 connect 'DAMENG' with "SYSDBA" identified by "SYSDBA" using '192.168.238.20/5237';  
操作已执行
已用时间: 17.286(毫秒). 执行号:1300.
SQL> 
SQL> select * from T1@LINK_M1;行号     ID         
---------- -----------
1          1
SQL> ################方式2
SQL> create link LINK_M2 connect 'DAMENG' with "SYSDBA" identified by "SYSDBA" using '192.168.238.20/62142';
操作已执行
已用时间: 6.763(毫秒). 执行号:1302.
SQL> select * from T1@LINK_M2;行号     ID         
---------- -----------
1          1已用时间: 14.197(毫秒). 执行号:1303.
SQL> ################方式3
SQL> create link LINK_M3 connect 'DAMENG' with "SYSDBA" identified by "SYSDBA" using 'DMSERVER02';  
操作已执行
已用时间: 6.312(毫秒). 执行号:1304.
SQL> select * from T1@LINK_M3;行号     ID         
---------- -----------
1          1已用时间: 16.392(毫秒). 执行号:1305.
SQL> 

ODBC方式

odbc类型的dblink,本地端数据库服务器上需要安装odbc包,并配置odbc数据源。
创建语法:

create link "链接名" connect 'ODBC' with "用户名" identified by "密码" using 'ODBC数据源名称';  

Step1 配置ODBC数据源

1、Linux环境odbc包安装(两种方式均可)
(1)方式一、源码编译安装
[root@localhost ~]# tar -zxvf unixODBC-2.3.9.tar.gz
[root@localhost ~]# cd unixODBC-2.3.9
[root@localhost unixODBC-2.3.9]# ./configure --enable-gui=no
[root@localhost unixODBC-2.3.9]# make
[root@localhost unixODBC-2.3.9]# make install

(2)方式二、yum安装unixODBC、unixODBC-devel

(3)配置odbcinst.ini和odbc.ini文件
源码编译方式安装的odbc包对应配置文件目录为: /usr/local/etc/
yum方式安装的odbc包对应的配置文件路径为:/etc

odbcinst.ini配置文件内容:

[DM8 ODBC DRIVER]
Description=ODBC DRIVER FOR DM8
DRIVER=/home/dmdba/dm128/bin/libdodbc.so  ---$DM_HOME/bin/libdodbc.so

odbc.ini 配置文件内容:

#####IP方式访问
[dm8]
Description=DM ODBC DSND
Driver= DM8 ODBC DRIVER
SERVER=192.168.238.20
UID=SYSDBA
PWD=SYSDBA
TCP_PORT=5237#####DM 服务名方式访问
[dm8_svc]
Description=DM ODBC DSND
Driver= DM8 ODBC DRIVER
SERVER=SERVER_5237   ### dm_svc.conf中配置的服务名
UID=SYSDBA
PWD=SYSDBA
TCP_PORT=5237

(4)dm_svc.conf文件配置如下:
[root@localhost ~]# cat /etc/dm_svc.conf

TIME_ZONE=(480)
LANGUAGE=(cn)SERVER_5237=(192.168.238.20:5237)

2、Windows环境ODBC配置
Windows系统配置较简单,Windows管理工具中打开"ODBC数据源(64位)"进行配置DSN。

Step2 创建DBLINK

本地库访问远端库,在本地库中创建dblink。

####使用IP方式的odbc数据源
SQL> create link LINK_ODBC connect 'ODBC' with "SYSDBA" identified by "SYSDBA" using 'dm8';
操作已执行
已用时间: 17.831(毫秒). 执行号:1600.
SQL> select * from T1@LINK_ODBC;行号     ID         
---------- -----------
1          1####使用服务名方式的odbc数据源
SQL> create link LINK_ODBC_SVC connect 'ODBC' with "SYSDBA" identified by "SYSDBA" using 'dm8_svc';
操作已执行
已用时间: 9.148(毫秒). 执行号:700.
SQL> select * from T1@LINK_ODBC_SVC;行号     ID         
---------- -----------
1          1已用时间: 80.391(毫秒). 执行号:701.
SQL> 

DPI方式

dpi类型的dblink,达梦数据库软件安装完成后自带DPI库,无需进行其他配置操作即可在数据库中直接创建dblink。
创建语法:

---方式1  IP:端口
create link "链接名" connect 'DPI' with "用户名" identified by "密码" using 'IP:端口';  
---方式2  使用dm_svc.conf中服务名
create link "链接名" connect 'DPI' with "用户名" identified by "密码" using '服务名';  

创建DBLINK示例

#### IP:Port的方式
SQL> create link LINK_DPI connect 'DPI' with "SYSDBA" identified by "SYSDBA" using '192.168.238.20:5237';
操作已执行
已用时间: 13.716(毫秒). 执行号:1800.
SQL> select * from t1@LINK_DPI;行号     ID         
---------- -----------
1          1已用时间: 9.878(毫秒). 执行号:1801.#### 服务名的方式
SQL> create link LINK_DPI_SVC connect 'DPI' with "SYSDBA" identified by "SYSDBA" using 'SERVER_5237';
操作已执行
已用时间: 776.228(毫秒). 执行号:702.
SQL> 
SQL> select * from T1@LINK_DPI_SVC;行号     ID         
---------- -----------
1          1已用时间: 158.347(毫秒). 执行号:703.

DBLINK使用限制

20220801170257
注:上述第8项主要是指dmmal方式的dblink。

测试遇到的问题

在上面测试中使用服务名方式创建DBLINK之后,使用对应dblink查询遇到报错"连接丢失"。初步判断该问题的原因可能是环境变量加载的问题,本次测试时处理的方法是重启数据库服务(或者重启操作系统)解决,使用数据库IP均正常。

简单总结

1、当前版本开始,达梦数据库DBLINK的支持多种类型的DBLINK,包括DM-DM、ODBC、DPI、DM-ORACLE(OCI)。
2、对于DM与DM之间的DBLINK,三种方式中,使用DPI方式配置上最为方便,ODBC方式需要安装ODBC包并配置ODBC数据源,dmmal方式需要设置MAL_INI数据库参数、配置dmmal.ini文件并需要重启数据库服务。
3、该版本之后的正式发布的版本,ODBC、DPI方式应该支持了本地端通过创建远端对象dblink同义词(包同义词、序列同义词、函数同义词等)调用相关方法。比如:

---seq1为远端序列
create or replace SYNONYM sym_seq1 for seq1@LINK1;
select sym_seq1.nextval from dual;

4、使用使建议阅读《SQL使用手册》上DBLINK相关使用介绍以及使用限制。
5、随着产品不断完善,DBLINK支持的相关功能也会越来越完善。大家如果有其他DBLINK相关需求以及其他功能需求可以在社区发帖留言。


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

相关文章

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

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

linux oracle dblink,Oracle dblink配置

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

DBlink 初级使用文档

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

oracle----dblink知识详解

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

DBlink

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

Oracle dblink详解

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

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

WebBuilder是一款强大的企业级Web应用快速开发平台,使用WebBuilder可以快速开发出强大而高效的跨平台的常规应用和移动应用系统。 WebBuilder官网:http://www.geejing.com 社区: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是一款强大,全面和高效的应用开发和运行平台。基于浏览器的集成开发环境,可视化和智能化的设计,能轻松完成常规应用和面向手机的移动应用开发。高效、稳定和可扩展的特点,适合复杂企业级应用的运行。跨平台、数据库和浏…

快速开发平台 WebBuilder 8.4 发布

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

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

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

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应用目…

WebBuilder开发笔记

WebBuilder开发笔记记录 基础知识 WebBuilder快捷键 控件配置 双击左侧控件箱中的控件将打开该控件&#xff0c;控件编辑器由General、Configs和Events 3个标签页组成&#xff0c;分别代表控件的常规属性、配置项属性和事件。 General标签页&#xff1a; autoCreate&#xff…

010-WebBuilder-编写可复用模块+阶段实战效果与代码

编写可复用模块 可复用的模块是指某个模块可以作为公共模块应用到其它模块中,开发大型项目时,构建高度可复用的模块,对质量和系统的可维护性具有重要意义. WebBuilder具有很强的模块复用能力,构建的模块可通过多种方式被别的模块引用.引用的模块和被引用的模块可以相互访问,使…