暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

达梦数据库外部链接的作用和操作

原创 bxf3000 2022-04-29
1634

社区地址:https://eco.dameng.com


1. 外部链接的作用

      外部链接对象(LINK)是DM中的一种特殊的数据库实体对象,它记录了远程数据库的连接和路径信息,用于建立与远程数据的联系。通过多台数据库主库间的相互通讯,用户可以透明地操作远程数据库的数据,使应用程序看起来只有一个大型数据库。用户远程数据库中的数据请求,都被自动转换为网络请求,并在相应结点上实现相应的操作。用户可以建立一个数据库链接,以说明一个对象在远程数据库中的访问路径。这个链接可以是公用的(数据库中所有用户使用),也可以是私有的(只能被某个用户使用)。

      用户可以通过外部链接对远程数据库的表进行查询和增删改操作,以及本地调用远程的存储过程。

      创建DAMENG数据库外部链接,必须首先配置dmmal.in和dm.ini,才能使用link。


2. 外部链接的操作

2.1.为两数据库创建dmmal.ini文件。

[dmdba@server01 TESTDB1]$ vim/dmdata/TESTDB1/dmmal.ini

[MAL_INST1]

MAL_INST_NAME = TESTDB1

MAL_HOST = 192.168.118.101

MAL_PORT = 61141

MAL_INST_HOST = 192.168.235.101

MAL_INST_PORT = 5235

 

[MAL_INST2]

MAL_INST_NAME = TESTDB2

MAL_HOST = 192.168.118.101

MAL_PORT = 61142

MAL_INST_HOST = 192.168.235.101

MAL_INST_PORT = 5236

[dmdba@server01 TESTDB2]$ pwd

 

/dmdata/TESTDB2

[dmdba@server01 TESTDB2]$ vim /dmdata/TESTDB2/dmmal.ini

[MAL_INST1]

MAL_INST_NAME = TESTDB1

MAL_HOST = 192.168.118.101

MAL_PORT = 61141

MAL_INST_HOST = 192.168.235.101

MAL_INST_PORT = 5235

 

[MAL_INST2]

MAL_INST_NAME = TESTDB2

MAL_HOST = 192.168.118.101

MAL_PORT = 61142

MAL_INST_HOST = 192.168.235.101

MAL_INST_PORT = 5236

2.2.修改两数据库dm.ini文件中”MAL_INI”的值为1。

[dmdba@server01 TESTDB1]$ vim /dmdata/TESTDB1/dm.ini

[dmdba@server01 TESTDB2]$ vim /dmdata/TESTDB2/dm.ini

2.3.重启2个数据库。

[dmdba@server01 ~]$ systemctl list-units|grep DmS

DmServicetestdb1.service  loaded active running   DM Instance Service(DmServicetestdb1).

DmServicetestdb2.service  loaded active running   DM Instance Service(DmServicetestdb2).

 

[dmdba@server01 ~]$ systemctl stop DmServicetestdb1.service

[dmdba@server01 ~]$ systemctl start DmServicetestdb1.service

 

[dmdba@server01 ~]$ systemctl stop DmServicetestdb2.service

[dmdba@server01 ~]$ systemctl start DmServicetestdb2.service

2.4.检查mal链路是否建立成功。

[dmdba@server01 TESTDB1]$ disql sysdba/SYSDBA@TESTDB1

SQL> select * from v$mal_link_status;

 

行号     SRC_SITE DEST_SITE CTL_LINK_STATUS DATA_LINK_STATUS

---------- -------- --------- --------------- ----------------

1          TESTDB1  TESTDB2   CONNECTED       CONNECTED

 

[dmdba@server01 TESTDB1]$ disql sysdba/SYSDBA@TESTDB1

SQL> select * from v$mal_link_status;

行号     SRC_SITE DEST_SITE CTL_LINK_STATUS DATA_LINK_STATUS

---------- -------- --------- --------------- ----------------

1          TESTDB2  TESTDB1   CONNECTED       CONNECTED

2.5.在TESTDB1上创建1张表。

SQL> create table T_01(id int,name varchar);

操作已执行

2.6.在TESTDB2上创建1个外部链接。

SQL> create public link link1 connect with SYSDBA identified by SYSDBA using '192.168.118.101/61141';

操作已执行

2.7.在TESTDB2上通过外部链接向TESTDB1插入数据。

SQL> insert into T_01@link1 values(1,1);

影响行数 1

2.8.在TESTDB1上查询结果。

SQL> SELECT * FROM T_01;             

行号     ID          NAME

---------- ----------- ----

1          1           1

2.9.删除外部链接。

SQL> DROP PUBLIC LINK link1;

操作已执行


社区地址:https://eco.dameng.com

最后修改时间:2022-05-11 21:59:31
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论