达梦DBLINK(外部连接)的使用

本文详细介绍达梦数据库外部链接的创建与使用方法,通过具体步骤演示如何在两台安装了达梦数据库的机器间建立连接,实现数据的远程查询与操作。包括配置dmmal.ini文件、修改dm.ini参数、重启数据库实例、创建测试表及使用外部连接进行数据操作。

外部链接简介

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

同构外部链接—DM 到DM

     以下操作步骤用于创建 DM 到 DM 的外部链接,并使用外部链接对远程库做增、删、改、查的操作 。

1 准备条件

     (1)两台数据库机器A 、B,均安装了达梦数据库。
     (2)两台数据库机器A 、B,均关闭了防火墙和selinux。
     3)两台数据库机器A 、B的实例名不能一致,两个数据库的字符集必须一致。

2 操作步骤

第一步:
两台数据库机器,第一台为目的主机A(被连接的机器),另外一台为测试机B(用来连接的机器),首先我们在两台机器的数据库实例下面创建dmmal.ini 文件
在这里插入图片描述
创建的内容如下:

[dmlink1]    #自定义

mal_inst_name  = DMSERVERSHI1   #A主机的实例名,和dm.ini中的INSTANCE_NAME保持一致
mal_inst_host = 192.168.18.134  #A主机的ip地址
mal_inst_port = 5237        #A主机的实例端口,和dm.ini中的PORT_NUM保持一致
mal_host = 192.168.18.134   #A主机的ip地址
mal_port = 61142       #系统监听TCP连接端口(自定义)
 
[dmlink2]    #自定义

mal_inst_name  = DMSERVERSHI   #B主机的实例名,和dm.ini中的INSTANCE_NAME保持一致

mal_inst_host = 192.168.18.132   #B主机的ip地址

mal_inst_port = 5236        #B主机的实例端口,和dm.ini中的PORT_NUM保持一致

mal_host = 192.168.18.132   #B主机的ip地址

mal_port = 61142      #系统监听TCP连接端口(自定义)

注意:两台机器的dmmal.ini必须一致,A和B的实例名不能一样

第二步:
修改两台主机的dm.ini文件中的MAL_INI参数,改为1
在这里插入图片描述
第三步:
重启两台主机的数据库实例
在这里插入图片描述

第四步:
在A主机创建一个表test用来让B主机用外部连接进行操作
(1)登录进入数据库实例
在这里插入图片描述
(2)创建表test
在这里插入图片描述
第五步:
在B主机建立外部连接操作A主机

建立外部连接语法如下:
create public link 外部连接名 connect with A主机登录用户 identified by A主机登录用户密码 using 'A主机ip/a主机系统监听TCP连接端口'

实际建立如下:
在这里插入图片描述

第六步:

在B主机中使用外部连接操作刚才在A主机中建立的数据库,插入一条数据

在这里插入图片描述
然后去A主机中查询一下数据
在这里插入图片描述
达梦DBLINK使用成功!

达梦数据库(DM)的 `DBLINK` 是一种用于访问远程数据库的机制,它允许用户在本地数据库中操作远程数据库的数据,包括查询、增删改操作以及调用远程存储过程。DBLINK 可以配置为公有(所有用户可使用)或私有(仅创建者使用)。 ### 配置 DBLINK 的基本步骤 #### 1. 创建 DBLINK 达梦数据库支持通过多种方式创建 DBLINK,包括使用 IP 地址、服务名等。以下是创建 DBLINK 的语法示例: - **创建公有 DBLINK** ```sql CREATE PUBLIC LINK link_name CONNECT WITH username IDENTIFIED BY password USING 'host_ip/service_name'; ``` - **创建私有 DBLINK** ```sql CREATE LINK link_name CONNECT WITH username IDENTIFIED BY password USING 'host_ip/service_name'; ``` 例如,创建一个连接达梦数据库的 DBLINK: ```sql CREATE PUBLIC LINK iplink1 CONNECT WITH "SYSDBA" IDENTIFIED BY "Dameng123" USING '192.168.0.153/61141'; ``` 或者创建私有 DBLINK: ```sql CREATE LINK iplink1 CONNECT WITH "SYSDBA" IDENTIFIED BY "Dameng123" USING '192.168.0.144/61142'; ``` #### 2. 查看 DBLINK 创建完成后,可以通过以下语句查看已有的 DBLINK 信息: ```sql SELECT * FROM dba_db_links; ``` #### 3. 异构数据库连接(如 Oracle) 达梦数据库可以通过 Oracle 提供的 OCI 组件访问 Oracle 数据库。配置步骤包括: - **配置 Oracle 网络服务名**:在本地配置 Oracle 的网络服务名(如 `ORCL`),确保可以连接到目标 Oracle 实例。 - **创建 DBLINK**:使用服务名创建 DBLINK。 例如: ```sql CREATE PUBLIC LINK oracle_link CONNECT WITH oracle_user IDENTIFIED BY oracle_password USING 'ORCL'; ``` 其中 `ORCL` 是在 Oracle 客户端配置的网络服务名[^3]。 #### 4. 使用 DBLINK 进行数据操作 创建 DBLINK 后,可以像操作本地表一样操作远程数据库中的表。例如,查询远程表: ```sql SELECT * FROM remote_table@link_name; ``` 执行插入操作: ```sql INSERT INTO remote_table@link_name (column1, column2) VALUES (value1, value2); ``` 执行更新操作: ```sql UPDATE remote_table@link_name SET column1 = value1 WHERE condition; ``` 执行删除操作: ```sql DELETE FROM remote_table@link_name WHERE condition; ``` 此外,还可以调用远程数据库的存储过程: ```sql CALL remote_procedure@link_name(param1, param2); ``` ### 注意事项 - **权限管理**:确保创建 DBLINK 的用户具有足够的权限,并且远程数据库的用户也具有相应的访问权限。 - **网络配置**:确保本地与远程数据库之间的网络连接正常,尤其是对于异构数据库(如 Oracle)需要正确配置 OCI 环境[^2]。 - **性能优化**:在进行大规模数据操作时,应注意网络延迟和性能问题,必要时可进行批量操作优化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值