达梦DBLink搭建

一、DBLink简介

达梦数据库的外部链接是一种数据库的实体对象,记录了远程数据库的连接信息,用于建立与远程数据的联系。用户可以通过数据库的外部链接对象透明地操作远程数据库的数据,对远程数据库的表进行查询和增删改操作,也可以调用远程的存储过程。数据库的外部链接对象可以是公用的(数据库中所有用户使用),也可以是私有的(特定用户使用)。

二、适用场景

达梦DBLink搭建_第1张图片

三、使用方法

3.1 语法格式

CREATE [OR REPLACE] [PUBLIC] LINK < 外部链接名> CONNECT ['< 连接库类型>'] WITH < 登录名> IDENTIFIED BY < 登录口令> USING '< 连接串> ';

< 连接库类型> ::= DAMENG | ORACLE | ODBC

< 连接串> ::=< 外部链接串>

< 外部链接串>::=< DAMENG外部链接串>| < ORACLE外部链接串> |

< DAMENG外部链接串>::=< 实例IP地址>/< 实例端口号> |

/ |

< ORACLE外部链接串>::= ||/< 服务名>

::=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=< 端口号>)))(CONNECT_DATA=(SERVICE_NAME=< 服务名>)))

::=

参数

OR REPLACE 使用OR REPLACE选项的好处是,如果系统中已经有同名的数据库链接名,服务器会自动用新的代码覆盖原来的代码。如果不使用OR REPLACE选项,当创建的新外部链接名称与系统中已有的外部链接名称同名时,服务器会报错。

PUBLIC 此链接对象是否能够被创建者之外的用户引用;

< 外部链接名> 数据库链接的名称;

< 连接库类型> 目前只支持DAMENG、ORACLE或ODBC,默认为DAMENG;

< 登录名> 登录用户名称;

< 登录口令> 登录用户口令;

支持三种格式,分别对应目标节点在dmmal.ini中的配置项,具体如下:

l mal_inst_host/mal_inst_port

l mal_host/mal_port

l mal_inst_name

可以使用配置的网络服务名tsn_name(网络服务名需要配置),或者连接描述符description(连接描述符是网络连接目标特殊格式的描述,它包括网络协议、主库IP地址、端口号和服务名),或者/< 服务名>;

DSN需要用户手动配置。

3.2 DM到DM的DBLink连接

3.2.1 环境准备:

1、两台数据库机器A 、B,均安装了达梦数据库。

2、两台数据库机器A 、B,均关闭了防火墙和selinux。

3、两台数据库机器A 、B的实例名不能一致,两个数据库的字符集必须一致。

3.2.2 创建dmmal.ini

在两台机器的数据库实例下面创建dmmal.ini 文件,文件内容如下:

[dmlink1]    #自定义

mal_inst_name  = DBSERVER   #A主机的实例名,和dm.ini中的INSTANCE_NAME保持一致

mal_inst_host = 192.168.23.88  #A主机的ip地址

mal_inst_port = 5236        #A主机的实例端口,和dm.ini中的PORT_NUM保持一致

mal_host = 192.168.23.88   #A主机的ip地址

mal_port = 61142       #系统监听TCP连接端口(自定义)

[dmlink2]    #自定义

mal_inst_name  = DBSERVER1   #B主机的实例名,和dm.ini中的INSTANCE_NAME保持一致

mal_inst_host = 192.168.23.99   #B主机的ip地址

mal_inst_port = 5236        #B主机的实例端口,和dm.ini中的PORT_NUM保持一致

mal_host = 192.168.23.99   #B主机的ip地址

mal_port = 61142      #系统监听TCP连接端口(自定义)

 达梦DBLink搭建_第2张图片

注意:两台机器的dmmal.ini必须一致,A和B的实例名不能一样

3.2.3 修改配置文件

修改两台数据库实例的dm.ini的参数,MAL_INI参数改为1

3.2.4 重启数据库实例

两台机器均需重启

cd /home/dmdba/dmdbms/bin

./DmServiceDMSERVER restart

3.2.5 创建测试表

在主机A中创建表后,使用主机B来连接进行操作:

主机A:create table test_link(id int,name text);

3.2.6 创建dblink

建立外部连接语法如下:

create public link 外部连接名 connect with A主机登录用户 identified by A主机登录用户密码 using 'A主机ip/a主机系统监听TCP连接端口';

主机B创建dblink:

create public link dmlink1 connect with  "SYSDBA" identified by "SYSDBA" using '192.168.23.88/61142';

3.2.7 DBLink测试

主机B:insert into test_link@dmlink1 values(1,'a');

insert into test_link@dmlink1 values(2,'b');

commit;

达梦DBLink搭建_第3张图片

主机A:select * from test_link; 

 

你可能感兴趣的:(数据库)