1、环境准备
两台服务器
实例名 | IP |
---|---|
DM1 | 192.168.31.109 |
DM2 | 192.168.31.110 |
特别需要注意的地方 A和B的数据库实例 字符集要保持一致
2、修改A和B主机配置文件
安装目录\dmdbms\data\DAMENG\dm.ini 文件
A主机
INSTANCE_NAME = DM1
MAL_INI = 1 # 等于0 默认不连接远程 实例服务不去加载 dmmal.ini 文件
B主机
INSTANCE_NAME = DM2
MAL_INI = 1 # 等于0 默认不连接远程 实例服务不去加载 dmmal.ini 文件
3、创建 dmmal.ini
在\dmdbms\data\DAMENG\目录下创建 dmmal.ini 文件,文件内容如下
A主机
[DM1]
MAL_INST_NAME = DM1
MAL_INST_HOST = 192.168.31.109
MAL_INST_PORT = 5236
MAL_HOST = 192.168.31.109
MAL_PORT = 16235
[DM2]
MAL_INST_NAME = DM2
MAL_INST_HOST = 192.168.31.110
MAL_INST_PORT = 5236
MAL_HOST = 192.168.31.110
MAL_PORT = 16236
B主机
[DM1]
MAL_INST_NAME = DM1
MAL_INST_HOST = 192.168.31.109
MAL_INST_PORT = 5236
MAL_HOST = 192.168.31.109
MAL_PORT = 16235
[DM2]
MAL_INST_NAME = DM2
MAL_INST_HOST = 192.168.31.110
MAL_INST_PORT = 5236
MAL_HOST = 192.168.31.110
MAL_PORT = 16236
修改完成配置文件后重启达梦数据库实例服务
4、创建A到B的连接
方法一:使用实例名创建
--语法
CREATE PUBLIC LINK 连接名称 CONNECT WITH "数据库名称" IDENTIFIED BY "密码" USING '实例名';
--示例
CREATE PUBLIC LINK dmLink CONNECT WITH "SYSDBA" IDENTIFIED BY "SYSDBA" USING 'DM2';
方法二:使用ip/port创建
--语法
CREATE PUBLIC LINK 连接名称 CONNECT WITH "数据库名称" IDENTIFIED BY "密码" USING 'ip/端口';
--示例
CREATE PUBLIC LINK dmIpLink CONNECT WITH "SYSDBA" IDENTIFIED BY "SYSDBA" USING '192.168.31.110/16236';
--select * from v$dblink;(AB机建立连接后才能显示数据)
查询测试:
-- 在B主机SYSDBA下创建测试表
CREATE TABLE test_link(id int,name text);
A主机查询测试
SELECT * FROM SYSDBA.test_link@dmLink;
--或
SELECT * FROM SYSDBA.test_link@dmIpLink;
5、查询dbLink 相关视图
--
SELECT OWNER as "拥有者",DB_LINK as "连接名称",USERNAME as "连接的用户",HOST as "主机",CREATED as "创建时间" FROM dba_db_links;
删除dbLink
--语法
DROP PUBLIC LINK 连接名称
--示例
DROP PUBLIC LINK dmIpLink
[执行语句1]:
DROP PUBLIC LINK dmIpLink
执行成功, 执行耗时7毫秒. 执行号:524
影响了0条记录
1条语句执行成功