测试环境:
实例名 | IP | 端口号 |
---|---|---|
DMSERVER1 | 192.168.0.119 | 5236 |
DMSERVER2 | 192.168.0.120 | 5237 |
测试目标:
利用达梦DBLINK,实现两个达梦数据库实例之间的跨实例访问,即DMSERVER1和DMSERVER2之间的互访。
实现步骤:
1、分别进入实例DMSERVER1和DMSERVER2的数据目录,找到dm.ini,修改其中的MAL_INI 参数值为1。
MAL_INI = 1
2、分别在DMSERVER1和DMSERVER2的数据目录下(和dm.ini文件相同目录),新建同样的dmmal.ini文件,文件内容如下:
[MAL_INST1]
MAL_INST_NAME = DMSERVER1
MAL_HOST = 192.168.0.119 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.0.119 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
[MAL_INST2]
MAL_INST_NAME = DMSERVER2
MAL_HOST = 192.168.0.120
MAL_PORT = 61142
MAL_INST_HOST = 192.168.0.120
MAL_INST_PORT = 5237
3、重新启动实例DMSERVER1和DMSERVER2
4、打开管理工具,连接DMSERVER1
--创建测试表tA
create table tA(id int);
insert into tA values(1),(2);
commit;
--创建外部链接DMSERVER2
create link "SYSDBA"."DMSERVER2" connect 'DAMENG' with "SYSDBA" identified by "******" using 'DMSERVER2';
5、打开管理工具,连接DMSERVER2
--创建测试表tB
create table tB(id int);
insert into tB values(1),(2)(3);
commit;
--创建外部链接DMSERVER1
create link "SYSDBA"."DMSERVER1" connect 'DAMENG' with "SYSDBA" identified by "******" using 'DMSERVER1';
--跨实例访问DMSERVER1的tA表
select * from tA@DMSERVER1; --访问成功
6、在DMSERVER1连接中访问DMSERVER2的tB表
select * from tB@DMSERVER2; --访问成功
至此,配置成功。