溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DM8 MPP的環(huán)境怎么搭建

發(fā)布時(shí)間:2021-08-05 10:59:15 來(lái)源:億速云 閱讀:121 作者:chen 欄目:數(shù)據(jù)庫(kù)

本篇內(nèi)容介紹了“DM8 MPP的環(huán)境怎么搭建”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

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ī)劃見(jiàn)下表。

實(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 <DELETE | PRESERVE>  ROWS] [<PARTITION子句>][<空間限制子句>] [<STORAGE子句>][<壓縮子句>] [<ROW MOVEMENT子句>][<DISTRIBUTE子句>]

<表結(jié)構(gòu)定義2>::= [ON COMMIT <DELETE | PRESERVE>  ROWS] [<空間限制子句>] [<STORAGE子句>] [<壓縮子句>]AS <不帶INTO的SELECT語(yǔ)句>[<DISTRIBUTE子句>];

<DISTRIBUTE子句>::=DISTRIBUTED[<RANDOMLY>|<FULLY>]

|DISTRIBUTED BY [<HASH>](<列名> {,<列名>})

|DISTRIBUTED BY RANGE (<列名> {,<列名>})(<范圍分布項(xiàng)> {,<范圍分布項(xiàng)>})

|DISTRIBUTED BY LIST (<<列名> {,<列名>}>)(<LIST分布項(xiàng)> {,<LIST分布項(xiàng)>})

<范圍分布項(xiàng)>::= VALUES LESS THAN (<表達(dá)式>{,<表達(dá)式>}) ON <實(shí)例名>

|VALUES EQU OR LESS THAN (<表達(dá)式>{,<表達(dá)式>})ON <實(shí)例名>

<LIST分布項(xiàng)>::= VALUES (<表達(dá)式>{,<表達(dá)式>}) ON <實(shí)例名>

測(cè)試:

#創(chuàng)建用戶和表空間:

#以下操作在任意EP節(jié)點(diǎn)執(zhí)行,所有EP節(jié)點(diǎn)都可見(jià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í)例即可,沒(méi)有特別的順序要求。

若在DM MPP系統(tǒng)的運(yùn)行過(guò)程中,某一EP發(fā)生故障停機(jī),則整個(gè)MPP系統(tǒng)將處于不能正常服務(wù)的狀態(tài)。當(dāng)前所有的用戶會(huì)話會(huì)被系統(tǒng)斷開(kāi),不能進(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] <列名>[<IDENTITY子句>]子句;

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)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI