注册
达梦数据库学习13:达梦数据库同构DBLINK配置(连接源ODBC)
专栏/技术分享/ 文章详情 /

达梦数据库学习13:达梦数据库同构DBLINK配置(连接源ODBC)

Hi70KG 2023/08/18 2888 1 1
摘要

达梦数据库配置同构DBLink

实验版本

SELECT * FROM SYS."V$VERSION" UNION SELECT BUILD_VERSION FROM SYS."V$INSTANCE"; 行号 BANNER ---------- ----------------------------------- 1 DM Database Server 64 V8 2 DB Version: 0x7000c 3 03134284044-20230417-187846-20040 4 1-3-12-2023.04.17-187846-20040-ENT

一、 DBLINK 的概念:

DBLINK(Database Link) 数据库链接:顾名思义就是数据库的链接,就像电话线一样,是一个通道。当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须创建远程数据库的 DBLINK。 本地数据库通过 DBLINK 可以像访问本地数据库一样访问远程数据库表中的数据。

二、达梦数据库 DBLINK 的分类:

  1. 按照访问权限, 达梦数据库 DBLINK可以分为普通 DBLINK 和公用 DBLINK 两类:
    普通 DBLINK :只有创建语句中标识的用户才可以访问远程数据库
    公用 DBLINK :本地数据的所有
    用户都可以访问远程数据库

  2. 按照源库和目标库的类型,达梦数据库常用的 DBLINK 又可以分为同构 DBLINK(DM-DM) 和异构 DBLINK( DM - ORACLE) 两类:
    同构 DBLINK(DM - DM) :源端和目标端使用的数据库均为达梦数据库;本文介绍同构间DBLINK

  3. 按照源库和目标库的之间的连接源类型,又分DAMENG,ORACLE,ODBC.DPI四种

三、同构DBLINK的利用ODBC通信配置过程

1.1 前置条件

准备两台数据库服务器 源端NODE01(I:192.168.80.11 ,实例:DMSERVER01), 和数据库服务器 目的端NODE02(IP:192.168.80.8 ,实例:DMSERVER02)
两个服务器间网络互通
两个服务器都已安装好达梦数据库。且 NODE01 和 NODE01 的实例名不能相同

1.2 ODBC配置

本篇文件只说明了,单向即从NODE01到NODE02的DBLINK连接,所以ODBC配置在NODE01配置
Linux下ODBC安装详情见文章

达梦数据库学习08:达梦数据库银河麒麟v10上配置 ODBC

找到ODBC中相关的库文件

[dmdba@NODE01 /data/dmdbms/bin 2023-08-18 09:11:28]
$ cd /opt/unixODBC-2.3.0/
[dmdba@NODE01 /opt/unixODBC-2.3.0 2023-08-18 09:11:41]
$ odbcinst -j
unixODBC 2.3.7
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/dmdba/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8


[dmdba@NODE01 /opt/unixODBC-2.3.0 2023-08-18 09:11:54]
$ find ./ -name "*.so"
./cur/.libs/libodbccr.so
./odbcinst/.libs/libodbcinst.so
./DriverManager/.libs/libodbc.so



将ODBC库文件拷贝到达梦bin目录下

注意考过去的库文件的数量和权限,数量和属组正确

[dmdba@NODE01 /opt/unixODBC-2.3.0 2023-08-18 09:12:11]
$ cp  `find ./ -name "*.so"` /data/dmdbms/bin
[dmdba@NODE01 /opt/unixODBC-2.3.0 2023-08-18 09:13:30]
$ ll /data/dmdbms/bin/*odbc*
-rwxr-xr-x 1 dmdba dinstall  196529  7月 25 14:17 /data/dmdbms/bin/libdodbc.so
-rwxr-xr-x 1 dmdba dinstall  527408  8月 18 09:13 /data/dmdbms/bin/libodbccr.so
-rwxr-xr-x 1 dmdba dinstall  575352  8月 18 09:13 /data/dmdbms/bin/libodbcinst.so
-rwxr-xr-x 1 dmdba dinstall 2181440  8月 18 09:13 /data/dmdbms/bin/libodbc.so
[dmdba@NODE01 /opt/unixODBC-2.3.0 2023-08-18 09:13:52]

如果忘记拷贝库文件或者拷贝库文件不正确,会报找不到库文件

修改两台达梦数据库dm.ini和dmmal.ini

DBLINK(Database Link)数据库链接,可以理解成是一个通道,如果想通过本地数据库去访问另一个数据库中表的数据时,本地数据库中要创建远程数据库的DBLINK,通过DBLINK本地数据库可以访问远程数据库中表的数据,DM8的DBLINK借助达梦自身的MAL系统实现。
配置文件参数MAL_INI值为1

$ cat dm.ini|grep MAL_INI
		MAL_INI                         = 1                     #dmmal.i

两端dmmal.ini,配置需要完全一致

[dmdba@NODE01 /data/dmdata/DAMENG 2023-08-18 09:52:28]
$ cat dmmal.ini 
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMSERVER01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.80.11 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5238 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.80.11 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致

[MAL_INST2]
MAL_INST_NAME = DMSERVER02
MAL_HOST = 192.168.80.8
MAL_PORT = 5238
MAL_INST_HOST = 192.168.80.8
MAL_INST_PORT = 5236

创建DBLINK连接

--创建DBLINK利用ODBC远程连接单实例 create link "SYSDBA"."LINK_TEST01" connect 'ODBC' with "SYSDBA" identified by "SYSDBA" using '192.168.80.8/5236'; --这里connect后面要指定ODBC,用户名,密码,IP,端口号 写的是NODE2端的

避坑指北:
image.png

达梦dm_svc.conf服务名配置详情见文章
达梦数据库dm_svc.conf文件配置达梦数据库dm_svc.conf文件配置

DBLINK远程连接单实例测试

--在目标端NODE02上查看数据 $ disql sysdba/SYSDBA@192.168.80.8:5236 服务器[192.168.80.8:5236]:处于普通打开状态 登录使用时间 : 4.297(ms) disql V8 10:06:13 sysdba@192.168.80.8:5236 > select count(*) from T1; 行号 COUNT(*) ---------- -------------------- 1 999 --在源端NODE01上通过DBLINK查看NODE02的数据 $ disql sysdba/Dameng123@192.168.80.11:5236; 服务器[192.168.80.11:5236]:处于普通打开状态 登录使用时间 : 4.618(ms) disql V8 10:04:39 sysdba@192.168.80.11:5236 > select count(*) from T1@LINK_TEST01; 行号 DBLINK_EXP_TMPALIAS_1 ---------- --------------------- 1 999 已用时间: 4.552(毫秒). 执行号:901. 10:05:17 sysdba@192.168.80.11:5236 >

达梦社区技术https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服