配置环境
IP | 操作系统 | 数据库版本 |
---|---|---|
192.168.10.11 | centos 7.4 | DM8 |
192.168.10.12 | centos 7.4 | DM8 |
修改两个实例数据目录下的dmmal.ini文件,如果没有这个文件则创建,修改内容如下:
[DMSERVER1]
MAL_INST_NAME = DMSERVER1 #实例名和dm.ini中的INSTANCE_NAME保持一致
MAL_INST_HOST = 192.168.10.11 #对外开放的服务IP地址
MAL_INST_PORT = 5236 #对外开放的服务端口和dm.ini中的PORT_NUM保持一致
MAL_HOST = 192.168.10.11 #系统监听TCP连接IP地址
MAL_PORT = 61142 #系统监听TCP连接端口
[DMSERVER2]
MAL_INST_NAME = DMSERVER2
MAL_INST_HOST = 192.168.10.12
MAL_INST_PORT = 5236
MAL_HOST = 192.168.10.12
MAL_PORT = 61142
分别修改两个实例数据目录下的dm.ini文件,修改内容如下:
将MAL_INI = 0 修改成 MAL_INI = 1 #启用MAL系统
重启两个数据库实例使参数修改生效:
[dmdba@localhost ~]$ DmServiceDMSERVER restart
Stopping DmServiceDMSERVER: [ OK ]
Starting DmServiceDMSERVER: [ OK ]
打开达梦数据库客户端登陆需要创建DBLINK的实例执行如下SQL语句:
create link <实例用户>.<自定义外部连接名> connect '<数据库类型>' with <登陆用户> identified by <用户密码> using '外部连接实例的IP地址/端口号'
示例:disql登录192.168.10.11的实例创建DBLINK
create link "SYSDBA"."LINK1" connect 'DAMENG' with "SYSDBA" identified by "SYSDBA" using '192.168.10.12/61142';
测试连接:
select * from <外部连接实例中的模式名>.<外部连接实例中的表名>@<外部连接名>
示例:连接192.168.10.11的实例,查询192.168.10.12实例上的test表
SQL> select * from test@LINK1;
行号 ID
---------- -----------
1 1
注意事项:
1.dmmal.ini 中必须设置不同的实例名
2.注意防火墙是否关闭
3.DBLINK两个实例的的数据库大版本必须一致,DM7和DM7或者DM8和DM8之间可以配置成功,DM7和DM8之间会报错
4.如果是在同一台机器上的两个实例间进行配置,DMSERVER1和DMSERVER2的MAL_INST_PORT 、MAL_PORT 需要配置成不同的端口,否则会端口冲突。