DM-DM DBLINK使用配置

news/2024/5/20 15:30:51/文章来源:https://blog.csdn.net/Mrkill123/article/details/127519674

简单介绍

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://www.luyixian.cn/news_show_218360.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023届C/C++软件开发工程师校招面试常问知识点复盘Part 7

目录46、C类的成员变量初始化顺序及拓展47、强制转换类型操作符号48、const 成员函数–常成员函数与常量对象49、volatile关键字50、赫夫曼树51、前缀树46、C类的成员变量初始化顺序及拓展 注意: 1、const成员或者引用必须在成员变量初始化列表中初始化,…

git的基础指令操作

git的下载地址:https://git-scm.com/download 安装好git后 在桌面上右键即可以看到两个git的快捷方式。 需要先对git进行基本的配置,即需要配置用户名和用户邮箱 1. 打开Git Bash 2. 设置用户信息 git confifig --global user.name “zqy” git confi…

权限项目 1_搭建环境

硅谷通用权限系统:搭建环境 一、项目介绍 1、介绍 权限管理是所有后台系统都会涉及的一个重要组成部分,而权限管理的核心流程是相似的,如果每个后台单独开发一套权限管理系统,就是重复造轮子,是人力的极大浪费&…

第 1 章之:二叉树特性

声明:文章为博主原创,转载请联系博主。文章若有错误和疏漏之处,还望大家不吝赐教! 第一章:数据结构与算法基础--------------------------- 本章重点内容为&#xff1…

基于麻雀算法二维oust图像分割算法研究附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

期刊|认知科学领域期刊《Trends in Cognitive Sciences》

Hello,大家好! 这里是壹脑云科研圈,我是Ns~ 今天我们介绍的是爱思维尔(Elsevier)旗下细胞出版社(cell press)发行的关于认知科学领域的期刊:Trends in Cognitive Sciences。 1 期刊简介 基本…

mysql之给字符串加索引

文章目录前言长字段加索引前缀索引对覆盖索引的影响合理的使用前缀索引总结前言 之前的文章介绍了主键索引和唯一索引的区别,也介绍了主键索引和唯一索引在不同业务场景下的区别。今天我们继续介绍,普通索引怎么合理的使用。 长字段加索引 这里我们就…

Spring6.0全新发布,快来看看

Spring6.0全新发布,快来看看 Spring Framework 6.0 发布了首个 RC 版本。 翻译后页面(有点好笑): On behalf of the team and everyone who has contributed, I am pleased to announce that Spring Framework is available now.6.0.0-RC2 Spring Frame…

零信任如何给为企业的数字资源保驾护航?

零信任安全最早由著名研究机构Forrester的首席分析师约翰.金德维格在2010年提出。 零信任安全针对传统边界安全架构思想进行了重新评估和审视,并对安全架构思路给出了新的建议。 零信任模型是什么 零信任是一种基于严格身份验证的网络安全架构。、 在该架构下&am…

【SpringBoot笔记12】SpringBoot框架实现文件上传和文件下载

这篇文章,主要介绍如何使用SpringBoot框架实现文件上传和文件下载。 目录 一、SpringBoot文件上传 1.1、引入依赖 1.2、编写文件上传页面 1.3、编写文件上传代码 (1)MultipartFile对象 (2)ResourceUtils工具类 …

音频拼接在一起怎么做?这篇文章来告诉你

随着互联网的发展,很多优质歌曲都纷纷地呈现在大家眼前,而将不同的音乐合并在一起,并且放入视频里,也是别有一番风味,那么许多人会好奇音频如何拼接在一起呢?下面就为大家分享两个好用的方法,只要一点时间…

【C++】使用对象自动管理指针(用到运算符重载)

文章目录1. 首先设计整型类&#xff1a;class Int普通指针2. 设计一个Object类&#xff0c;并设计Int类型的指针。那如何获取Int类型的值呢&#xff1f;1. 首先设计整型类&#xff1a;class Int class Int { private:int value; public:Int(int x 0) :value(x){cout <<…

Springbootg整合validation整合

坚持年年写博客&#xff0c;不能断了&#xff0c;所以粘贴平时写的一份笔记吧 一、简介 校验参数在以前基本都是使用大量的if/else&#xff0c;稍微方便一点的可以使用反射自定义注解的形式&#xff0c;但是复用性不是很好&#xff0c;并且每个人对于的自定义注解有着自己的使…

Java基础-任务执行服务

今天小编带领大家一起来探索Java中的任务执行服务 关于任务执行服务&#xff0c;我们介绍了&#xff1a; 任务执行服务的基本概念。 主要实现方式&#xff1a;线程池。 定时任务。 &#xff08;1&#xff09;基本概念 任务执行服务大大简化了执行异步任务所需的开发&…

算法 - 最少交换次数来组合所有的 1 II

目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 2134. 最少交换次数来组合所有的 1 II - 力扣&#xff08;LeetCode&#xff09; 题目描述 交换定义为选中一个数组中的两个 互不相同 的位置并交换二者的值。 环形数组是一个数组&#xff0c;可以认为 第…

第五章:乱序执行

1.概念 指令在执行时常常因为一些限制而等待。例如&#xff0c;MEM单元访问的数据不在cache中,需要从外部存储器中取&#xff0c;这个过程通常需要几十、几百个Cycle&#xff0c;如果是顺序执行的内核,后面的指令都要等待&#xff0c;而如果处理器足够智能&#xff0c;就可以先…

修改数组(秋季每日一题 31)

给定一个长度为 nnn 的正整数数组 a1,a2,…,ana_1,a_2,…,a_na1​,a2​,…,an​。 你可以任意改变其中任意元素的值。 但是&#xff0c;改变后的元素的值仍需是正整数。 将一个元素的值从 aaa 变为 bbb 所需要付出的代价为 ∣a−b∣|a−b|∣a−b∣。 对于一个正整数 ttt&am…

Elasticsearch 查询详解

1 数据准备 PUT student_index {"settings": {"number_of_shards": 1,"number_of_replicas": 0},"mappings": {"properties": {"birthday": {"type": "date","format": "yyy…

AcmHelper -运行在本地的Acm帮手

AcmHelper 详见github 本地环境下的 Polygon , 但不止于 Polygon. 你可以 快速创建具有合理结构的题目文件夹指定 std , checker , validator , interactor使用不同语言完成不同部分 (cpp/py)使用额外的程序来测试数据的质量使用预制的数据生成器快速生成具有某些特征的数据…

Python爬虫|采集开源众包的悬赏任务,自动翻页

前言 现在互联网,有很多网站提供一些接单外派的形式,提供给有能力的人或者团队去接单。比如说,很多人熟悉的猪八戒,程序员客栈,CODING 码市,开源众包等等平台,相信很多同学也都知道。 如果要第一时间了解某个接单平台发布的第一手悬赏任务,选择爬虫也是非常不错的选择…