实际生产环境中,往往会遇到跨库访问和抽取数据。可以利用的工具举不胜数,如ETL,DBLINK等工具,本文介绍在DM7中利用DBLINK实现数据库之间相互访问。
一、什么是DBLINK
DBLINK(DatabaseLink)数据库链接,可以理解成是一个通道,如果想通过本地数据库去访问另一个数据库中表的数据时,本地数据库中要创建远程数据库的DBLINK,通过DBLINK本地数据库可以访问远程数据库中表的数据,DM7的DBLINK借助达梦自身的MAL系统实现。
二、测试环境
|
实例名
IP地址
操作系统版本
数据库版本
DM1
192.168.10.61
NeoKylin Linux General Server release 6.0 64位
DM Database Server x64 V7.1.5.132-Build ENT
DM2
192.168.10.62
NeoKylin Linux General Server release 6.0 64位
DM Database Server x64 V7.1.5.132-Build ENT
三、修改数据库的配置文件
修改192.168.10.61服务器的配置:
vim/dm7/data/DAMENG/dm.ini
INSTANCE_NAME = DM1
PORT_NUM = 5236
MAL_INI = 1
vim/dm7/data/DAMENG/dmmal.ini
[MAL_INST1]
MAL_INST_NAME= DM1
MAL_HOST= 192.168.10.61
MAL_PORT= 5256
MAL_INST_HOST= 192.168.10.61
MAL_INST_PORT= 5236
[MAL_INST2]
MAL_INST_NAME= DM2
MAL_HOST= 192.168.10.62
MAL_PORT= 5256
MAL_INST_HOST= 192.168.10.62
MAL_INST_PORT= 5236
修改192.168.10.62服务器的配置:
vim/dm7/data/DAMENG/dm.ini
INSTANCE_NAME = DM2
PORT_NUM = 5236
MAL_INI = 1
vim/dm7/data/DAMENG/dmmal.ini
[MAL_INST1]
MAL_INST_NAME= DM1
MAL_HOST= 192.168.10.61
MAL_PORT= 5256
MAL_INST_HOST= 192.168.10.61
MAL_INST_PORT= 5236
[MAL_INST2]
MAL_INST_NAME= DM2
MAL_HOST= 192.168.10.62
MAL_PORT= 5256
MAL_INST_HOST= 192.168.10.62
MAL_INST_PORT= 5236
四、重启数据库服务
192.168.10.61服务器:/etc/rc.d/init.d/DmServiceDM1restart
192.168.10.62服务器:/etc/rc.d/init.d/DmServiceDM2restart
五、在192.168.10.62服务器创建DBLINK
SQL>CREATE PUBLIC LINK LINK1 CONNECT 'DAMENG' WITH SYSDBA IDENTIFIED BY"dameng123" USING '192.168.10.61/5256';
注意端口号哦!
创建完成可以利用V$DBLINK查看。
六、在192.168.10.61服务器创建测试表
SQL>create table test (id int);
SQL>insert into test values (1);
SQL>commit;
七、在192.168.10.62服务器测试访问
SQL>select * from test@link1;
行号 ID
---------------------
1 1
八、把192.168.10.61服务器dmhr.employee的数据抽到192.168.10.62的sysdba.t1表中。
SQL>create table sysdba.t1 as select * from dmhr.employee@link1
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!