文章目录
- 一、创建外部链接(DM到DM)
- 二、删除外部链接
- 三、外部链接使用
- 四、ODBC方式
外部链接对象(LINK)是 DM 中的一种特殊的数据库实体对象,它记录了远程数据库的连接和路径信息,用于建立与远程数据的联系。通过多台数据库主库间的相互通讯,用户可以透明地操作远程数据库的数据,使应用程序看起来只有一个大型数据库。用户远程数据库中的数据请求,都被自动转换为网络请求,并在相应结点上实现相应的操作。用户可以建立一个数据库链接,以说明一个对象在远程数据库中的访问路径。这个链接可以是公用的(数据库中所有用户使用),也可以是私有的(只能被某个用户使用)。
用户可以通过外部链接对远程数据库的表进行查询和增删改操作,以及本地调用远程的存储过程。
一、创建外部链接(DM到DM)
CREATE [OR REPLACE] [PUBLIC] LINK <外部链接名> CONNECT ['<连接库类型>'] WITH < 登录名> IDENTIFIED BY <登录口令> USING '<外部连接串>';
<连接库类型> ::= DAMENG | ORACLE | ODBC
<外部链接串>::=< DAMENG 外部链接串>| < ORACLE 外部链接串> | <ODBC 外部链接串>
<DAMENG 外部链接串>::=[<连接类型>;]<服务器列表>
<连接类型>::= PRIMARY FIRST |
STANDBY FIRST |
PRIMARY ONLY |
STANDBY ONLY
<服务器列表>::=<服务器地址> |
<服务器地址>{,<服务器地址>}
<服务器地址>::=<实例 IP 地址>/<实例端口号> |
<MAL IP 地址>/<MAL 端口号> |
<实例名>
<ORACLE 外部链接串>::= <tsn_name> |<description>|<IP 地址>/<服务名>
<description>::=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST= <IP 地址>)(PORT=<端口号>)))(CONNECT_DATA=(SERVICE_NAME=<服务名>)))
<ODBC 外部链接串>::= <ODBC 数据源 DSN>
1.配置dmmal.ini
[MAL_INST1]
MAL_INST_NAME = DM1 #实例名,和dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.235.158 #MAL系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.235.158 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
[MAL_INST2]
MAL_INST_NAME = DM2 #实例名,和dm.ini中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.235.159 #MAL系统监听 TCP 连接的 IP 地址
MAL_PORT = 61142 #MAL系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.235.159 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
2.修改dm.ini中MAL_INI参数
配置完成重启数据库实例
3.在DM1主机创建一个表T1
./disql SYSDBA/SYSDBA@192.168.235.158:5236
create table T1(id int,name varchar);
4.在DM2主机建立外部连接操作DM1主机
create public link link1 connect with SYSDBA identified by SYSDBA using '192.168.235.158/61141';
5.在DM2主机中使用外部连接操作刚才在DM1主机中建立的数据库,插入一条数据
insert into T1@link1 values(1,1);
6.DM1主机中查询一下数据
select * from T1;
二、删除外部链接
DROP [PUBLIC] LINK [IF EXISTS] [<模式名>.]<外部链接名>;
指定 IF EXISTS 关键字,删除不存在的外部链接,不会报错。
drop public link link1;
insert into T1@link1 values(1,1);
在删除外部链接时如果创建的是公共链接,在删除的时候要加PUBLIC,与创建时对应。
三、外部链接使用
使用外部链接进行查询或增删改的语法格式与普通格式基本一致,唯一的区别在于指定外部链接表时需要使用如下格式作为表或视图的引用:
[TABLENAME | VIEWNAME] @链接名
即:表名/视图名 @链接名
限制:
外部链接的使用有以下限制:
- DM-DM 的同构外部链接不支持 MPP 环境,DM 与异构数据库的外部链接支持 MPP环境;
2. 增删改不支持 INTO 语句;
3. 不支持使用游标进行增删改操作;
4. 不支持操作远程表的复合类型列;
5. DBLINK 理论上不支持 LOB 类型列的操作,但支持简单的增删改语句中使用常量来对 LOB 类型列进行操作。
四、ODBC方式
1.安装配置ODBC
解压ODBC包:
tar -zxvf unixODBC-2.3.0.tar.gz
生成 Makefile:
./configure
make
make install
查看ODBC 配置文件的路径:
odbcinst -j
数据源配置:
vi /odbc.ini
驱动配置:
vi /odbcinst.ini
dmdba测试:
isql dm8 -v
2.创建DBLink
CREATE PUBLIC LINK LINK1 CONNECT 'ODBC' WITH SYSDBA IDENTIFIED BY SYSDBA USING 'dm8';
更多资讯请上达梦技术社区了解: https://eco.dameng.com