DM MPP大規模並行叢集部署
簡介
MPP (Massively Parallel Processing),即大規模並行處理,在資料庫非共享叢集中,每個節點都有獨立的磁碟儲存系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺數據節點通過專用網路或者商業通用網路互相連線,彼此協同計算,作為整體提供資料庫服務。非共享資料庫叢集有完全的可伸縮性、高可用、高效能、優秀的價效比、資源共享等優勢。
簡單來說,MPP是將任務並行的分散到多個伺服器和節點上,在每個節點上計算完成後,將各自部分的結果彙總在一起得到最終的結果(與Hadoop相似)。
部署環境
表2‑1 部署環境
系統版本 | Centos7.9 |
CPU型號 | Intel(R) i5-7200U CPU (2核) |
磁碟空間 | 40G |
記憶體大小 | 2G |
表2‑2 磁碟規劃
資料 | /dev/mapper/vg_dm-lv_dmdata |
備份 | /dev/mapper/vg_dm-lv_dmbak |
歸檔 | /dev/mapper/vg_dm-lv_arch |
表2‑3 目錄規劃
資料庫軟體安裝目錄 | /home/dmdba/dmdbms |
例項安裝目錄 | /dmdata |
歸檔存放目錄 | /dmdata/arch |
備份存放目錄 | /dmdata/dmbak/ |
表2‑4 IP埠規劃
例項名 | IP | 例項埠 | MAL埠 |
mpp1 | 192.168.254.144 | 5236 | 7236 |
mpp2 | 192.168.254.145 | 5236 | 7236 |
DM MPP大規模並行叢集部署
安裝DM 8並初始化例項
安裝過程本文略
./dminit path=/dmdata db_name=dmmpp1 instance_name=dmmpp1 page_size=32 extent_size=16 charset=1 log_size=2048 SYSDBA_PWD="SYSDBA" SYSAUDITOR_PWD="SYSDBA" |
配置例項的配置檔案 dm.ini
//修改dmmpp1例項的dm.ini檔案引數,執行以下命令: vi /home/dmdba/dmdbms/dmmpp1/dm.ini
INSTANCE_NAME = dmmpp1 MAL_INI = 1 MPP_INI = 1
//修改dmmpp2例項的dm.ini檔案引數,執行以下命令: vi /home/dmdba/dmdbms/dmmpp2/dm.ini
INSTANCE_NAME = dmmpp2 MAL_INI = 1 MPP_INI = 1 |
配置MAL系統配置檔案dmmal.ini
//執行以下命令,在例項目錄下新建檔案dmmal.ini,所有節點檔案內容要相同 MAL_CHECK_INTERVAL = 5 #MAL 鏈路檢測時間間隔 MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 鏈路斷開的時間 [MAL_INST1] MAL_INST_NAME = dmmpp1 MAL_HOST = 192.168.254.144 MAL_PORT = 7236 MAL_INST_HOST = 192.168.56.11 MAL_INST_PORT = 5236 [MAL_INST2] MAL_INST_NAME = dmmpp2 MAL_HOST = 192.168.254.145 MAL_PORT = 7236 MAL_INST_HOST = 192.168.254.145 MAL_INST_PORT = 5236 |
圖3‑1 修改dmmal配置檔案
配置 MPP 控制檔案 dmmpp.ctl
//在其中一個節點新建dmmpp.ini配置檔案,執行以下命令: vi /home/dmdba/dmdbms/dmmpp/dmmpp.ini
[SERVICE_NAME1] MPP_SEQ_NO = 0 MPP_INST_NAME = dmmpp1 [SERVICE_NAME2] MPP_SEQ_NO = 1 MPP_INST_NAME = dmmpp2
//使用 dmctlcvt 工具將dmmpp.ini檔案轉化為dmmpp.ctl,在資料庫安裝的 bin 目錄下執行以下命令: ./dmctlcvt TYPE=2 SRC=/dmdata/dmmpp/dmmpp.ini DEST=/dmdata/dmmpp/dmmpp.ctl //將生成的dmmpp.ctl控制檔案複製到另一個節點的例項目錄下: scp -r /dmdata/dmmpp/dmmpp.ctl [email protected]:/dmdata/dmmpp |
圖3‑2 SCP傳送dmmpp.ctl到其他節點下
啟動叢集
//正常啟動例項即可,需要所有節點都啟動後,叢集才能訪問。 systemctl start DmServicedmmpp |
驗證叢集
//客戶端登入任意節點 ./disql SYSDBA/'"SYSDBA"' SQL> select instance_name from v$instance; |
圖3‑3 檢視MPP所有節點資訊