达梦dblink简介
达梦数据库的外部链接(LINK)是一种数据库的实体对象,记录了远程数据库的连接信息,用于建立与远程数据的连接。用户可以通过数据库的外部链接对象透明地操作远程数据库的数据,可以对远程数据库的表进行增删改查操作,还能调用远程数据库的存储过程。数据库的外部链接对象可以是公用的(数据库中所有用户使用),也可以是私有的(特定用户使用)
dmlink限制
- DM-DM的同构外部链接不支持MPP环境,DM与异构数据库的外部链接支持MPP环境;
- 增删改不支持INTO语句;
- 不支持使用游标进行增删改操作;
- 不支持操作远程表的复合类型列;
- DBLINK 理论上不支持 LOB 类型列的操作,但支持简单的增删改语句中使用常量来对 LOB 类型列进行操作。
对于异构数据库来说还有如下的限制:
- 数据类型以DM为基础,不支持DM没有的数据类型;
- 语法以DM的语法为标准,不支持DM不兼容的语法;
- 主键更新,如果是涉及到多个服务器的语句,不能保证更新操作一定成功;
- 例如使用CREATE VIEW view_name(view_col_name) AS SELECT ITEM FROM T@LINK 方式来创建查询远程对象的本地视图,对于异构库,不能保证操作一定成功。
- 对于查询异构库远程对象的本地视图,最好采用 CREATE VIEW AS SELECT ITEM AS alias_name FROM T@LINK方式创建
此篇博客主要介绍dm-dm间dblink的建立及使用
dm-dm搭建dblink
1.环境准备
两台服务器
主机名 | IP |
---|---|
dm | 192.168.188.77 |
dm2 | 192.168.188.88 |
关闭防火墙及selinux
两台数据库字符集要一致,服务名要一样,且要修改配置文件中MAL_INI参数为1。
[dmdba@dm /]$ more /dm8/data/DAMENG/dm.ini|grep -E "INSTANCE_NAME|MAL_INI"
INSTANCE_NAME = DMSER1 #Instance name
MAL_INI = 1 #dmmal.ini
[dmdba@dm2 ~]$