简单介绍

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使用限制


注:上述第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相关需求以及其他功能需求可以在社区发帖留言。

DM-DM DBLINK使用配置相关推荐

  1. DM数据库DBLINK

    1.同构数据库(DM-DM)的dblink 在安装DM数据库是遇到临时目录(/tmp)可用空间不够的问题 通过设置环境变量DM_INSTALL_TMPDIR来指定DM数据库的安装路径,指定的路径需要赋 ...

  2. DM创建DBLINK连接oracle

    文章目录 前言 一.下载oracle监听客户端 二.上传下载好的压缩包至服务器并解压 三.将解压出来的so文件拷贝至达梦数据库安装目录BIN目录下 四.将libclntsh.so.12.1文件复制一份 ...

  3. 达梦数据库(DM)——配置达梦数据库外部链接——DM到DM的外部链接创建

    目录 一.关于外部链接 二.环境准备工作 三.DM到DM的外部链接创建 3.1配置dm.ini 3.2配置dmmal.ini 3.3重启数据库服务 3.4创建外部链接 3.4.1在源端上建立到目的端的 ...

  4. DM MPP集群(带交叉守护进程)安装配置

    目录 DM MPP集群(带交叉守护进程)--安装配置... 3 1.    DM MPP架构基础... 3 2.    环境准备... 4 2.1     系统信息规划... 4 2.2     在 ...

  5. java应用系统正确的连接DM主备集群

    jdbc连接DM主备集群 一句话 为保证集群在出故障时能够正常切换,应用连接时采用服务名方式进行连接,将连接串中的ip改成服务名如下面配置的DM在应用服务器配置dm_svc.conf文件: 应用服务器 ...

  6. 达梦数据库DM的知识总结---DCA

    达梦数据库是类似于Oracle的一款国产数据库,在诸多政府和企业单位被应用.其绝大部分的逻辑结构和操作语言都与Oracle类似. 达梦的官网和社区网站是不一样的.达梦的社区网站:https://eco ...

  7. 国内运营商DM功能介绍

    什么是运营商DM DM(终端管理)技术为运营商和终端厂商提供了一种低成本的手段来维护管理终端软件和数据,主要功能包括终端自注册.业务配置.应用数据管理三大部分,适用于运营商的深度合作终端.战略合作终端 ...

  8. DM数据库备份与还原

    目录 一.基本概述 二.DM8备份还原的方法 2.1备份还原工具 2.2配置归档 2.3使用联机执行 SQL 语句进行备份还原 2.3.1数据库备份 2.3.2表空间备份 2.3.3表备份 2.3.4 ...

  9. 【DM】达梦数据库(DCA培训)学习分享

    达梦数据库介绍 达梦数据库是一款完全自主原创的国产数据库.近些年来随着国际型式不断恶化,国产的操作系统及国产的数据库在国内使用不断扩大,升级及发展也日新月异,其中达梦数据库在政府及事业单位就得到广泛应 ...

最新文章

  1. Java知识点总结(Java容器-EnumSet)
  2. C++ 复数类加减法运算重载为成员函数形式
  3. 如何实现linux+windows双系统启动
  4. ascll 和gbk,utf-8的简介
  5. 形容人的内核是什么意思_成语雪泥鸿爪是形容什么的?雪泥鸿爪什么意思?蚂蚁庄园2020年12月10日答案...
  6. 计算机网络基础:IP基础知识笔记
  7. adc如何获取周期_LOL:千珏拥有ADC最需要的位移和无敌能力,为什么没人用她打下路?...
  8. vue.js 四(指令和自定义指令)
  9. centos部署时间服务器
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的体育场地预约管理系统
  11. php去除html标签 空白,php使用strip_tags()去除html标签仍有空白的解决方法
  12. 『原创』老范的XML文档编辑程序——不是一般的山寨!(原创附程序)
  13. springboot总结(一)
  14. 释放IP地址,然后重新获取的两个命令
  15. oracle general ledger,处理 Oracle General Ledger 调整期间
  16. Population and carrying capacity 的第四个阶段:Negative feedback with delay. Overshoot and oscillation
  17. 在外企必会的英文单词
  18. 企业微信加密消息体_无代码开发能保障企业系统数据的安全吗?这篇文章为你全面解析!...
  19. 基于JAVA社区疫情防控系统设计与实现 毕业设计开题报告
  20. 搭建PXE自动安装centos

热门文章

  1. HTML5 绘制简单的飞机模型
  2. 操作系统设计思想--主奴思想
  3. 局域网ip冲突,查找到冲突主机信息
  4. 能上网IE却无法打开,都是卡巴-反***闹的
  5. CPU和GPU的关系
  6. 西工大机考《 炼油工艺学》大作业网考
  7. 80端口被NT kernel System 占用pid 4
  8. 为什么是红黑树而不是绿黄树?
  9. R语言机器学习mlr3:技术细节
  10. RationalDMIS 2020 飞行(FLY)运动(FLY motion)