達夢DBlink叢集之間通訊搭建
前言
提示:實際生產環境中,往往會遇到跨庫訪問和抽取資料。可以利用的工具舉不勝數,如ETL,DBLINK等工具,本文介紹在DM7叢集與叢集之間利用DBLINK實現資料庫之間相互訪問。
提示:以下是本篇文章正文內容,下面案例可供參考
一、DBLINGK是什麼
示例:
DBLINK(Database Link)資料庫連結,可以理解成是一個通道,如果想通過本地資料庫去訪問另一個資料庫中表的資料時,本地資料庫中要建立遠端資料庫的DBLINK,通過DBLINK本地資料庫可以訪問遠端資料庫中表的資料,DM7的DBLINK藉助達夢自身的MAL系統實現。
二、測試環境
首先準備好叢集環境,保證各個主機能夠互相ping通能夠通訊,我是在本地虛擬機器進行測試,架構圖如下:
例項名 | IP地址 | 系統版本 | 主機名 |
---|---|---|---|
DM1 | 192.168.100.101 | Centos7.4 | CentOS7-01 |
DM2 | 192.168.100.102 | Centos7.4 | CentOS7-02 |
GRP1_RWW_01 | 192.168.100.103 | Centos7.4 | CentOS7-03 |
GRP1_RWW_02 | 192.168.100.104 | Centos7.4 | CentOS7-04 |
主備叢集 | 讀寫分離叢集 |
---|---|
DM1、DM2 | GRP1_RWW_01、GRP1_RWW_02 |
三、操作步驟
1、叢集搭建
主備和讀寫分離叢集搭建過程省略,如果搭建成功的話如下圖在監視器中都是open狀態:
主備:
讀寫分離庫:
從圖中看搭建叢集成功接下來進行DBlink的搭建
2、叢集mal檔案的修改
我們要知道在達夢資料庫中DBlink的通訊是通過我們的mal檔案進行通訊的,所以對於叢集之間通訊需要將mal檔案修改一致即可,注意:是所有主機上的mal必須是一致的
修改主機192.168.100.101上的mal檔案:
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST = 192.168.100.101
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.100.102
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.102
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST3]
MAL_INST_NAME = GRP1_RWW_01
MAL_HOST = 192.168.100.103
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.103
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST4]
MAL_INST_NAME = GRP1_RWW_02
MAL_HOST = 192.168.100.104
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.104
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
修改主機192.168.100.102上的mal檔案:
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST = 192.168.100.101
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.100.102
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.102
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST3]
MAL_INST_NAME = GRP1_RWW_01
MAL_HOST = 192.168.100.103
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.103
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST4]
MAL_INST_NAME = GRP1_RWW_02
MAL_HOST = 192.168.100.104
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.104
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
修改主機192.168.100.103上的mal檔案:
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST = 192.168.100.101
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.100.102
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.102
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST3]
MAL_INST_NAME = GRP1_RWW_01
MAL_HOST = 192.168.100.103
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.103
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST4]
MAL_INST_NAME = GRP1_RWW_02
MAL_HOST = 192.168.100.104
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.104
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
修改主機192.168.100.104上的mal檔案:
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST = 192.168.100.101
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 192.168.100.102
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.102
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST3]
MAL_INST_NAME = GRP1_RWW_01
MAL_HOST = 192.168.100.103
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.103
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
[MAL_INST4]
MAL_INST_NAME = GRP1_RWW_02
MAL_HOST = 192.168.100.104
MAL_PORT = 61141
MAL_INST_HOST = 192.168.100.104
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
修改完畢,檢查無誤後,重啟服務
192.168.100.101伺服器:
[dmdba@CentOS7-01 bin]$ ./DmServiceDM1 restart
192.168.100.102伺服器:
[dmdba@CentOS7-02 bin]$ ./DmServiceDM2 restart
192.168.100.103伺服器:
[dmdba@CentOS7-03 conf]$ ./DmServiceGRP1_RWW_01 restart
192.168.100.104伺服器:
[dmdba@CentOS7-04 conf]$ ./DmServiceGRP1_RWW_02 restart
重啟之後使用監視器檢視狀態,為open就繼續往下操作
3、DBlink搭建的兩種方式
3、1圖形化建立
想達夢資料庫的話有個管理工具,在此我們可以使用管理工具來建立,也更快速。
開啟管理工具連線庫之後----外部連結(建立就是DBlink)
右擊外部連結—點選新建—定義名稱—注意選擇連結字串時右邊有個小箭頭可以列出所有的主機
重點:如果沒有的話自己定義,IP後面的埠要搞清楚,它是mal檔案中的MAL_PORT埠,不是資料庫埠
建立完成後—可以看到已經有LINK01了----右擊測試----測試成功兩邊就可以分享表了
3、2字串建立
在192.168.100.103上建立一個測試表;
[dmdba@CentOS7-03 bin]$ ./disql
disql V7.6.0.197-Build(2019.09.12-112648)ENT
使用者名稱:
密碼:
伺服器[LOCALHOST:5236]:處於主庫開啟狀態
登入使用時間: 4.334(毫秒)
SQL> create table CS(id int);
操作已執行
已用時間: 174.646(毫秒). 執行號:6.
在192.168.100.101上建立DBlink:
[dmdba@CentOS7-01 bin]$ ./disql
disql V7.6.0.197-Build(2019.09.12-112648)ENT
使用者名稱:密碼:
伺服器[LOCALHOST:5236]:處於主庫開啟狀態
登入使用時間: 5.150(毫秒)
SQL>
SQL> CREATE or replace PUBLIC LINK LINK02 CONNECT 'DAMENG' WITH SYSDBA IDENTIFIED BY SYSDBA USING '192.168.100.103/61141';
操作已執行
已用時間: 39.064(毫秒). 執行號:38.
SQL>
SQL> insert into CS@LINK02 values(1);
影響行數 1
SQL> select * from CS@LINK02;
行號 ID
---------- -----------
1 1
已用時間: 1.503(毫秒). 執行號:40.
測試並建立成功。
總結
提示:以上就是今天要講的內容,本文僅僅簡單介紹了DBlink的兩種使用方法
特別注意的兩個點就是MAL檔案各個主機一定要一致,還有就是IP後面跟的埠是MAL檔案中MAL_PORT的埠號,不是資料庫埠號。
相關文章
- 達夢DMDSC叢集搭建
- 搭建達夢DSC叢集
- 管理 ES 叢集:叢集與外部間的安全通訊
- 管理 ES 叢集:叢集內部間的安全通訊
- 『中級篇』叢集服務間通訊之RoutingMesh(47)
- kubernetes實踐之十八:叢集各模組之間的通訊
- 達夢資料庫主備實時叢集搭建和維護資料庫
- Kafka學習之(五)搭建kafka叢集之Zookeeper叢集搭建Kafka
- 基於X-86平臺的達夢8守護叢集搭建
- 想問一下,websocket叢集間如何通訊Web
- rocketMq之叢集搭建(三)MQ
- 叢集通訊:從心跳說起
- 達夢7異構(DM-Oracle) DBLINKOracle
- 配置達夢資料庫同構DBLINK資料庫
- 搭建zookeeper叢集(偽叢集)
- 用隧道協議實現不同dubbo叢集間的透明通訊協議
- redis通訊與高可用叢集原理Redis
- 叢集RPC通訊怎麼做RPC
- smartroute簡單整合叢集聊天通訊
- 叢集搭建
- 大資料之CDH叢集搭建大資料
- zookeeper叢集及kafka叢集搭建Kafka
- 達夢資料庫單例項轉實時同步叢集資料庫單例
- 微服務Consul系列之叢集搭建微服務
- Kafka學習之(六)搭建kafka叢集Kafka
- Redis系列:搭建Redis叢集(叢集模式)Redis模式
- redis叢集搭建Redis
- nacos 叢集搭建
- kafka叢集搭建Kafka
- Ambari叢集搭建
- 搭建ELK叢集
- RabbitMQ叢集搭建MQ
- HBASE叢集搭建
- zookeeper 叢集搭建
- mysql叢集搭建MySql
- Zookeeper叢集搭建
- 搭建 Redis 叢集Redis
- 搭建 zookeeper 叢集