如何利用DBLINK實現DM7之間跨庫訪問

實際生產環境中,往往會遇到跨庫訪問和抽取數據。可以利用的工具舉不勝數,如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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章