本篇內(nèi)容介紹了“DM8 MPP的環(huán)境怎么搭建”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
在成都網(wǎng)站建設(shè)、網(wǎng)站制作過(guò)程中,需要針對(duì)客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。成都創(chuàng)新互聯(lián)公司還需要根據(jù)客戶的需求進(jìn)行功能模塊的開發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。
DM8 MPP環(huán)境搭建
1. 準(zhǔn)備環(huán)境
本例配置一個(gè)兩節(jié)點(diǎn)MPP。兩個(gè)節(jié)點(diǎn)都配置兩塊網(wǎng)卡,一塊接入內(nèi)部網(wǎng)絡(luò)交換模塊,一塊接入到外部交換機(jī)。兩節(jié)點(diǎn)實(shí)例名分別為MEVI01和MEVI02,相關(guān)的IP、端口等規(guī)劃見下表。
實(shí)例名 | MAL_INST_HOST | MAL_INST_PORT | MAL_HOST | MAL端口 | MPP_SEQNO |
MEVI01 | 192.168.18.171 | 5236 | 192.168.10.171 | 5269 | 0 |
MEVI02 | 192.168.18.172 | 5236 | 192.168.10.172 | 5269 | 1 |
DM MPP 各 EP 使用的 DM 服務(wù)器版本應(yīng)一致,同時(shí)還應(yīng)注意各 EP 所在主機(jī)的操作系統(tǒng)位數(shù)、大小端模式、時(shí)區(qū)及時(shí)間設(shè)置都應(yīng)一致,否則可能造成意想不到的錯(cuò)誤。
2. 配置參數(shù)文件
1) 配置 dm.ini
首先,在 EP01 和 EP02 上分別創(chuàng)建數(shù)據(jù)庫(kù),用戶可以使用 DM 的圖形化客戶端工具“數(shù)據(jù)庫(kù)配置助手”或命令行工具 dminit 創(chuàng)建數(shù)據(jù)庫(kù)。
在各 EP 上創(chuàng)建數(shù)據(jù)庫(kù)時(shí),要求有些初始化參數(shù)必須所有 EP 都相同。我們建議各 EP 的數(shù)據(jù)庫(kù)初始化參數(shù)都保持一致,以免產(chǎn)生錯(cuò)誤。
分別對(duì)兩個(gè)實(shí)例的 dm.ini 進(jìn)行配置。
修改 EP01的 dm.ini 的以下幾個(gè)參數(shù)如下: INSTANCE_NAME = MEVI01 PORT_NUM = 5236 MAL_INI = 1 MPP_INI = 1 |
修改 EP02的 dm.ini 的以下幾個(gè)參數(shù)如下: INSTANCE_NAME = MEVI02 PORT_NUM = 5236 MAL_INI = 1 MPP_INI = 1 |
2) 配置 dmmal.ini
為兩個(gè) EP 配置 dmmal.ini 如下,配置完全一樣,EP 間可互相拷貝。dmmal.ini 與dm.ini 放在相同的目錄下。
[MAL_INST1] MAL_INST_NAME = MEVI01 MAL_HOST = 192.168.10.171 MAL_PORT = 5269 MAL_INST_HOST = 192.168.18.171 MAL_INST_PORT = 5236
[MAL_INST2] MAL_INST_NAME = MEVI02 MAL_HOST = 192.168.10.172 MAL_PORT = 5269 MAL_INST_HOST = 192.168.18.172 MAL_INST_PORT = 5236 |
3) 配置 dmmpp.ctl
dmmpp.ctl 是一個(gè)二進(jìn)制文件,用戶不能直接配置,需要先配置 dmmpp.ini。
配置 dmmpp.ini 如下:
[SERVICE_NAME1] MPP_SEQ_NO = 0 MPP_INST_NAME = MEVI01
[SERVICE_NAME2] MPP_SEQ_NO = 1 MPP_INST_NAME = MEVI02 |
使用dmctlcvt 工具將 dmmpp.ini 轉(zhuǎn)換成 dmmpp.ctl,dmctlcvt 工具在 DM 安裝目錄的“bin”子目錄中。轉(zhuǎn)換生成的 dmmpp.ctl 需要放在與 dm.ini 同一個(gè)目錄。
[dmdba@mpp1 ~]$ dmctlcvt TYPE=2 SRC=/dmdata/MEVI/dmmpp.ini DEST=/dmdata/MEVI/dmmpp.ctl
[dmdba@mpp2 ~]$ dmctlcvt TYPE=2 SRC=/dmdata/MEVI/dmmpp.ini DEST=/dmdata/MEVI/dmmpp.ctl
3. 運(yùn)行 MPP
經(jīng)過(guò)前面的步驟,DM MPP 環(huán)境已經(jīng)配置完成了。分別啟動(dòng) MEVI01和 MEVI02的 DM 數(shù)據(jù)庫(kù)實(shí)例(順序不分先后),DM MPP 系統(tǒng)即能正常運(yùn)行,用戶就可以登錄任一 EP 進(jìn)行數(shù)據(jù)庫(kù)操作了。
[dmdba@mpp1 ~]$ DmServiceMEVI01 start
Starting DmServiceMEVI01: [ OK ]
[dmdba@mpp2 ~]$ DmServiceMEVI02 start
Starting DmServiceMEVI02: [ OK ]
4. 建立分布表
DM MPP 支持表數(shù)據(jù)的哈希分布、隨機(jī)分布、復(fù)制分布、范圍分布、LIST 分布類型,用戶可根據(jù)實(shí)際情況選擇合適的分布類型。
MPP 的數(shù)據(jù)分布類型和具體設(shè)置在建表時(shí)指定,語(yǔ)法如下:
CREATE [[GLOBAL] TEMPORARY] TABLE <表名定義> <表結(jié)構(gòu)定義>; <表結(jié)構(gòu)定義>::=<表結(jié)構(gòu)定義1> | <表結(jié)構(gòu)定義2> <表結(jié)構(gòu)定義1>::= (<列定義> {,<列定義>} [,<表級(jí)約束定義>{,<表級(jí)約束定義>}]) [ON COMMIT <表結(jié)構(gòu)定義2>::= [ON COMMIT |DISTRIBUTED BY [ |DISTRIBUTED BY RANGE (<列名> {,<列名>})(<范圍分布項(xiàng)> {,<范圍分布項(xiàng)>}) |DISTRIBUTED BY LIST (<<列名> {,<列名>}>)( <范圍分布項(xiàng)>::= VALUES LESS THAN (<表達(dá)式>{,<表達(dá)式>}) ON <實(shí)例名> |VALUES EQU OR LESS THAN (<表達(dá)式>{,<表達(dá)式>})ON <實(shí)例名>
|
測(cè)試:
#創(chuàng)建用戶和表空間: #以下操作在任意EP節(jié)點(diǎn)執(zhí)行,所有EP節(jié)點(diǎn)都可見: SQL> create tablespace MEVI datafile '/dmdata/MEVI/MEVI01.DBF' size 64; SQL> create user mevi identified by "mevi123456" default tablespace mevi; SQL> grant RESOURCE,VTI to mevi; SQL> conn mevi/mevi123456 |
#創(chuàng)建哈希分布表 T_HASH,分布列為 C1。 SQL> create table t_hash(c1 int, c2 char(10)) distributed by hash (c1); |
#創(chuàng)建隨機(jī)分布表 T_RANDOM。 SQL> create table t_random(c1 int, c2 char(10)) distributed randomly; |
#創(chuàng)建復(fù)制分布表 T_FULLY。 SQL> create table t_fully(c1 int, c2 char(10)) distributed fully; |
#創(chuàng)建范圍分布表 T_RANGE,分布列為 C1。 SQL> create table t_range(c1 int, c2 char(10)) distributed by range (c1) (values equ or less than (100) on mevi01, values less than (maxvalue) on mevi02); |
#創(chuàng)建 LIST 分布表 T_LIST,分布列為 C1。 SQL> create table t_list(c1 int, c2 char(10)) distributed by list (c1) (values (6) on mevi01, values (8) on mevi02); |
#創(chuàng)建哈希分布表的范圍水平分區(qū)表。 create table t_hash_range_partition (c1 int, c2 char(10), c3 char(10)) partition by range (c1) ( partition part_1 values less than(0) , partition part_2 values less than(10) , partition part_3 values less than(100) , partition part_4 values less than(maxvalue) ) distributed by hash (c1); |
在創(chuàng)建分布表時(shí),用戶應(yīng)注意以下一些使用限制:
1) 單機(jī)模式下建的分布表和普通表一樣,但是不能創(chuàng)建指定實(shí)例名的分布表(如范圍分布表和LIST分布表);
2) 在MPP模式下創(chuàng)建分布表,如果未指定列則默認(rèn)為RANDOMLY(隨機(jī))分布表;
3) 分布列類型不支持BLOB、CLOB、IMAGE、TEXT、LONGVARCHAR、BIT、BINARY、VARBINARY、LONGVARBINARY、BFILE、時(shí)間間隔類型、虛擬列和用戶自定義類型;
4) HASH分布、RANGE分布、LIST分布允許更新分布列,并支持包含大字段列的表的分布列更新,但包含INSTEAD OF觸發(fā)器的表、堆表不允許更新分布列;
5) 對(duì)于FULLY(復(fù)制)分布表,只支持單表查詢的更新和刪除操作,并且查詢項(xiàng)或者條件表達(dá)式中都不能包含ROWID偽列表達(dá)式;
6) RANGE(范圍)分布表和LIST(列表)分布表,分布列與分布列值列表必須一致,并且指定的實(shí)例名不能重復(fù);
7) 引用約束的引用列和被引用列都必需包含分布列,且分布情況完全相同;
8) 隨機(jī)分布表不支持UNIQUE索引。
5. 快速數(shù)據(jù)裝載
DM MPP特別適合于海量數(shù)據(jù)的存儲(chǔ)和處理,因此在應(yīng)用中常常面臨將大量數(shù)據(jù)從某個(gè)或某些歷史數(shù)據(jù)庫(kù)中裝載到MPP系統(tǒng)的需求。為了滿足海量數(shù)據(jù)的快速裝載需求,DM提供了快速裝載工具dmfldr,能夠?qū)M單機(jī)版和MPP系統(tǒng)進(jìn)行海量數(shù)據(jù)的快速裝載。
dmfldr為命令行工具,使用時(shí)必須指定必要的執(zhí)行參數(shù)。
dmfldr支持MPP環(huán)境下的兩種數(shù)據(jù)加載模式:客戶端分發(fā)模式和本地分發(fā)模式,通過(guò)參數(shù)MPP_CLIENT進(jìn)行設(shè)置。使用客戶端分發(fā)模式時(shí),數(shù)據(jù)在dmfldr客戶端進(jìn)行分發(fā)然后直接向指定EP發(fā)送數(shù)據(jù);使用本地分發(fā)模式時(shí),每個(gè)EP對(duì)應(yīng)一個(gè)dmfldr和一份數(shù)據(jù),每個(gè)dmfldr只選擇出對(duì)應(yīng)本節(jié)點(diǎn)的數(shù)據(jù)并發(fā)送,不管其他節(jié)點(diǎn)的數(shù)據(jù)。默認(rèn)使用客戶端分發(fā)模式。
6. 停止 MPP 系統(tǒng)
需要停止DM MPP系統(tǒng)的運(yùn)行時(shí),只需要停止每個(gè)EP的DM實(shí)例即可,沒有特別的順序要求。
若在DM MPP系統(tǒng)的運(yùn)行過(guò)程中,某一EP發(fā)生故障停機(jī),則整個(gè)MPP系統(tǒng)將處于不能正常服務(wù)的狀態(tài)。當(dāng)前所有的用戶會(huì)話會(huì)被系統(tǒng)斷開,不能進(jìn)行全局登錄,只能進(jìn)行本地登錄。因此,為了保證MPP系統(tǒng)的高可用性,建議采用DM MPP與數(shù)據(jù)守護(hù)相結(jié)合的部署方案。
7. MPP的使用限制
DM MPP支持絕大多數(shù)單機(jī)版DM的功能,但在某些小的功能點(diǎn)使用上存在一些使用限制,具體如下:
1) MPP環(huán)境下,不支持創(chuàng)建SET NULL或SET DEFAULT約束檢查規(guī)則的引用約束;
2) MPP環(huán)境下不支持創(chuàng)建外部表、間隔分區(qū)表;
3) MPP環(huán)境下不支持修改表的ADD [COLUMN] <列名>[
4) MPP環(huán)境下不支持創(chuàng)建位圖索引、空間索引、數(shù)組索引;
5) MPP環(huán)境下位圖連接索引涉及的維度表需FULLY分布;
6) MPP環(huán)境下不支持索引的ONLINE選項(xiàng);
7) MPP環(huán)境下不支持視圖的WITH CHECK OPTION操作;
8) MPP環(huán)境下不支持閃回查詢;
9) MPP環(huán)境下不支持物化視圖日志;
10) MPP各EP創(chuàng)建數(shù)據(jù)庫(kù)時(shí)指定的編碼格式應(yīng)相同,否則可能造成亂碼問(wèn)題;
11) MPP環(huán)境下INI參數(shù)MVCC_RETRY_TIMES無(wú)效,發(fā)生MVCC沖突時(shí)直接報(bào)錯(cuò);
12) MPP環(huán)境下不支持DBMS_JOB包;
13) MPP環(huán)境下日志輔助表不支持FULLY分布。
“DM8 MPP的環(huán)境怎么搭建”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!