前言
DBLINK(Database Link)数据库链接,可以理解成是一个通道,如想通过本地数据库去访问另外一个数据库中表的数据。达梦的DBLINK通过MAL系统实现,本章以达梦主备集群间建创建DBLINK为例进行配置,仅供参考。
一、配置MAL文件,重新启动集群服务
1.首先修改两套集群的dmmal.ini文件(四个节点的MAL配置文件保持一致)
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]#主库
MAL_INST_NAME = DMDB_01 #实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.55.7 #MAL系统监听TCP连接的IP地址
MAL_PORT = 61141 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.1.131 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 52141 #实例对应的守护进程监听TCP连接的端口
[MAL_INST2]#备库
MAL_INST_NAME = DMDB_02
MAL_HOST = 192.168.55.8
MAL_PORT = 61142
MAL_INST_HOST = 192.168.1.132
MAL_INST_PORT = 5238
MAL_DW_PORT = 52142
[MAL_INST3]#主库
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.55.9
MAL_PORT = 61141
MAL_INST_HOST = 192.168.1.133
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST4]#备库
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.55.10
MAL_PORT = 61142
MAL_INST_HOST = 192.168.1.134
MAL_INST_PORT = 5238
MAL_DW_PORT = 52142
注意:4个节点的实例名不同,若要修改需同时调整dm.ini、dmarch.ini对应的实例名
2.重新启动集群服务
二、通过MAL_PORT端口创建DBLINK
1.在B:192.168.55.9创建到A:192.168.55.7的dblink
CREATE PUBLIC LINK LINK01 CONNECT WITH "TEST" IDENTIFIED BY "dameng123" USING '192.168.55.7/61141';
select * from v$dblink;(AB机建立连接后才能显示数据)
2.连接测试
–在主机A上建表test:
CREATE TABLE TEST(C1 INT,C2 VARCHAR(20));
–在B上使用链接进行插入,更新:
INSERT INTO TEST@LINK01 VALUES(1,'A');
INSERT INTO TEST@LINK01 VALUES(2,'B');
UPDATE TEST@LINK01 SET C2='C' WHERE C1=1;
DELETE FROM TEST@LINK01 WHERE C1=2;
–在B上查询A服务器上表test的数据:
select * from TEST@LINK01;
–在B上创建同义词(公共同义词CREATE OR REPLACE PUBLIC,该用户须有CREATE PUBLIC SYNONYM权限)
CREATE OR REPLACE SYNONYM TEST FOR TEST@LINK01;
3.删除外部链接:
–B上执行:
DROP PUBLIC LINK LINK01;