栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

达梦dblink使用(dm-dm)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

达梦dblink使用(dm-dm)

达梦dblink简介

达梦数据库的外部链接(LINK)是一种数据库的实体对象,记录了远程数据库的连接信息,用于建立与远程数据的连接。用户可以通过数据库的外部链接对象透明地操作远程数据库的数据,可以对远程数据库的表进行增删改查操作,还能调用远程数据库的存储过程。数据库的外部链接对象可以是公用的(数据库中所有用户使用),也可以是私有的(特定用户使用)

dmlink限制
  1. DM-DM的同构外部链接不支持MPP环境,DM与异构数据库的外部链接支持MPP环境;
  2. 增删改不支持INTO语句;
  3. 不支持使用游标进行增删改操作;
  4. 不支持操作远程表的复合类型列;
  5. DBLINK 理论上不支持 LOB 类型列的操作,但支持简单的增删改语句中使用常量来对 LOB 类型列进行操作。

对于异构数据库来说还有如下的限制:

  1. 数据类型以DM为基础,不支持DM没有的数据类型;
  2. 语法以DM的语法为标准,不支持DM不兼容的语法;
  3. 主键更新,如果是涉及到多个服务器的语句,不能保证更新操作一定成功;
  4. 例如使用CREATE VIEW view_name(view_col_name) AS SELECt ITEM FROM T@LINK 方式来创建查询远程对象的本地视图,对于异构库,不能保证操作一定成功。
  5. 对于查询异构库远程对象的本地视图,最好采用 CREATE VIEW AS SELECt ITEM AS alias_name FROM T@LINK方式创建

此篇博客主要介绍dm-dm间dblink的建立及使用

dm-dm搭建dblink 1.环境准备

两台服务器

主机名IP
dm192.168.188.77
dm2192.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 ~]$ more /dm8/data/DAMENG/dm.ini|grep -E "INSTANCE_NAME|MAL_INI"
		INSTANCE_NAME                   = DMSER2              #Instance name
		MAL_INI                         = 1                     #dmmal.ini

编写dmmal.ini文件

[dmdba@dm ~]$ more /dm8/data/DAMENG/dmmal.ini
[DMSER1]
MAL_INST_NAME  = DMSER1
MAL_INST_HOST = 192.168.188.77
MAL_INST_PORT = 5236
MAL_HOST = 192.168.188.77
MAL_PORT = 7771

[DMSER2]
MAL_INST_NAME  = DMSER2
MAL_INST_HOST = 192.168.188.88  
MAL_INST_PORT = 5236        
MAL_HOST = 192.168.188.88   
MAL_PORT = 7772
[dmdba@dm2 ~]$ more /dm8/data/DAMENG/dmmal.ini
[DMSER1]
MAL_INST_NAME  = DMSER1
MAL_INST_HOST = 192.168.188.77
MAL_INST_PORT = 5236
MAL_HOST = 192.168.188.77
MAL_PORT = 7771

[DMSER2]
MAL_INST_NAME  = DMSER2
MAL_INST_HOST = 192.168.188.88  
MAL_INST_PORT = 5236        
MAL_HOST = 192.168.188.88   
MAL_PORT = 7772

修改配置文件后重启。

2.dblink创建

先在dm2主机数据库中创建一个表linktest

SQL> create table linktest(id int,name varchar);
操作已执行
已用时间: 11.602(毫秒). 执行号:300.
SQL> select * from linktest;
未选定行

已用时间: 0.901(毫秒). 执行号:301.

在dm主机数据库创建dmlink连接dm2主机

  • 方法一:使用实例名创建
SQL> CREATE PUBLIC LINK instancelink CONNECT  WITH "SYSDBA" IDENTIFIED BY "SYSDBA" USING 'DMSER2';

插入数据测试

SQL> insert into linktest@instancelink values(1,'instancename');
影响行数 1

SQL> select * from linktest@instancelink;

行号     ID          NAME        
---------- ----------- ------------
1          1           instancename

  • 方法二:使用ip:port创建
SQL> CREATE PUBLIC LINK iplink  CONNECT  WITH "SYSDBA" IDENTIFIED BY "SYSDBA" USING '192.168.188.88/5236';

插入数据测试

SQL> insert into linktest@iplink values(2,'ip');
影响行数 1


SQL> select * from linktest@instancelink;

行号     ID          NAME        
---------- ----------- ------------
1          1           instancename
2          2           ip


可以看出dblink已经搭建成功

3.dblink相关视图
  • dba_db_links
SQL> select * from dba_db_links;

行号     OWNER  DB_LINK      USERNAME HOST                CREATED                   
---------- ------ ------------ -------- ------------------- --------------------------
1          PUBLIC INSTANCELINK SYSDBA   DMSER2/0            2022-06-27 16:44:21.314051
2          PUBLIC IPLINK       SYSDBA   192.168.188.88/5236 2022-06-27 16:44:26.524981

OWNER:dblink拥有者
DB_LINK:dblink名字
USERNAME:连接的用户
HOST:主机
CREATED:创建时间

  • V$DBLINK
SQL> select * from V$DBLINK;

行号     LINK_CONN            LINK_ID     LINK_NAME    SCH_ID      OWNER_ID    IS_PUBLIC LOGIN_NAME
---------- -------------------- ----------- ------------ ----------- ----------- --------- ----------
           HOST_NAME      PORT_NUM    LOGGED_ON HETEROGENEOUS PROTOCOL IN_USE
           -------------- ----------- --------- ------------- -------- ------
1          95382600             201326592   INSTANCELINK 0           50331649    YES       SYSDBA
           DMSER2         NULL        YES       YES           TCP/IP   YES

2          140200957445520      201326593   IPLINK       0           50331649    YES       SYSDBA
           192.168.188.88 5236        YES       YES           TCP/IP   NO

4.删除dblink

语法

DROp [PUBLIC] LINK [<模式名>.]<外部链接名>;

删除一个进行测试

SQL> drop public link INSTANCELINK;
操作已执行

验证

SQL> select * from dba_db_links;

行号     OWNER  DB_LINK USERNAME HOST                CREATED                   
---------- ------ ------- -------- ------------------- --------------------------
1          PUBLIC IPLINK  SYSDBA   192.168.188.88/5236 2022-06-27 16:44:26.524981

有任何问题请到达梦技术社区反馈

达梦云适配中心

eco.dameng.com
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995385.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号