修改系統時間,保持一致
date -s 16:58:30
hwclock -w
1.MPP集群規劃
本集群打算使用2臺服務器
實體名 MAL_INST_HOST MAL_INST_PORT MAL_HOST MAL 埠 MPP_SEQNO
HNSI01 10.120.130.92 5236 192.168.130.92 5269 0
HNSI02 10.120.130.93 5237 192.168.130.93 5270 1
2.首先創建資料庫用戶:dmdba(兩臺服務器都執行)
groupadd dinstall
useradd -g dinstall dmdba -m
passwd dmdba
3.將軟體包上傳到dmdba用戶下,解壓進行安裝(兩臺服務器都執行,安裝時各選項保持默認即可)
--DM8
mount /tmp/dm8_setup_rh6_64_ent_8.1.1.88_20200629.iso /mnt/ -o loop
chmod 777 DMInstall.bin
字符安裝:./DMInstall.bin -i
安裝完成后,/home/dbdba目錄下生成dmdbms檔案夾
4.配置環境變數并生效(兩臺服務器都執行)
su - dmdba
cd ~
vim .bash_profile
PATH=$PATH:$HOME/bin:/home/dmdba/dmdbms/bin
source .bash_profile
5.創建達夢資料目錄,這里使用:/home/dmdba/dmdata/(兩臺服務器都執行)
6.分別在兩臺服務器上創建六個實體
這里我們使用dminit命令手工創建,這個命令將創建一個名為 HNSI01的資料庫實體,所在的檔案路徑在/home/dmdba/dmdata/HNSI01下,mal_flag和mpp_flag都設定為1表示將啟用多節點間的網路通訊,port_num=5236,表示該節點(資料庫實體)的對外服務埠為5236,
主機1:
[dmdba@ha2 ~]$ ./dminit path=/home/dmdba/dmdata/ db_name=HNSI01 instance_name=HNSI01 port_num=5236 mal_flag=1 mpp_flag=1
主機2:
[dmdba@linux1 ~]$ ./dminit path=/home/dmdba/dmdata/ db_name=HNSI02 instance_name=HNSI02 port_num=5237 mal_flag=1 mpp_flag=1
注:修改主機2埠為5237
7.配置集群郵件通信(兩臺服務器都執行)
前面我們已經創建好了2個集群實體,在啟動它們前,還需要做一項配置作業,首先我們需要讓這兩個節點能互相通信,達夢資料庫內部有一個通訊子系統,模仿真實世界的郵件網路,稱為MAL,
分別在兩臺服務器編輯檔案(內容相同):dmmal.ini,然后放入對應的三個實體目錄下,例如:/home/dmdba/dmdbms/HNSI01
[dmdba@ha2 ~]$ cat dmmal.ini
[mal_inst1]
mal_inst_name = HNSI01
mal_host = 192.168.130.92
mal_port = 5269
mal_inst_host = 10.120.130.92
mal_inst_port = 5236
[mal_inst2]
mal_inst_name = HNSI02
mal_host = 192.168.130.93
mal_port = 5270
mal_inst_host = 10.120.130.93
mal_inst_port = 5237
將dmmal.ini分別復制到剛才新建的EP實體目錄下:
[dmdba@ha2 ~]$ cp dmmal.ini dmdbms/HNSI01
[dmdba@linux1 ~]$ cp dmmal.ini dmdbms/HNSI02
8.配置集群之間協同作業
郵件模塊是一個底層子系統,配置完成使得節點間可以通訊,至于是用于主/備還是讀寫分離等還需要上層決定,因此還需要配置多機協同作業模式,
首先配置dmmpp.ini,然后用工具生成ctl,另一個節點復制生成的ctl即可,最后把生成的dmmpp.ctl檔案也放到那6個EP0X檔案夾下面
[dmdba@ha2 ~]$ cat dmmpp.ini
[service_name1]
mpp_seq_no = 0
mpp_inst_name = HNSI01
[service_name2]
mpp_seq_no = 1
mpp_inst_name = HNSI02
su - dmdba
cd ~
vim .bash_profile
#PATH=$PATH:$HOME/bin:/home/dmdba/dmdbms/bin
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin
source .bash_profile
備注:這里也有2項,分別表示有2個節點,其序號分別為0-1,其實體名分別為HNSI01-HNSI02, 注意這里的序號必須從0開始依次編號,實體名必須和dmmal.ini中對應,我們把這個檔案命名為dmmpp.ini,
將ini檔案轉換為dmmpp.ctl檔案:
dmctlcvt TYPE=2 SRC=https://www.cnblogs.com/home/dmdba/dmdata/HNSI01/dmmpp.ini DEST=/home/dmdba/dmdata/HNSI01/dmmpp.ctl
--dmctlcvt t2c dmmpp.ini dmmpp.ctl
將檔案分別復制到對應HNSI02目錄下:
[dmdba@ha2 ~]$ cp dmmpp.ctl dmdata/HNSI01/
[dmdba@linux1 ~]$ cp dmmpp.ctl dmdata/HNSI02/
9.分別啟動2個服務
[dmdba@ha2 ~]$ nohup dmserver /home/dmdba/dmdata/HNSI01/dm.ini &
[dmdba@linux1 ~]$ nohup dmserver /home/dmdba/dmdata/HNSI02/dm.ini &
10.檢查集群是否啟動
首先,可以通過ps命令查看行程是否正常啟動:
[dmdba@ha2 ~]$ ps -ef | grep dmdba
dmdba 13326 11800 1 15:23 pts/0 00:00:03 dmserver /home/dmdba/dmdata/HNSI01/dm.ini
[dmdba@linux1 ~]$ ps -ef | grep dmdba
dmdba 15059 13824 2 15:26 pts/1 00:00:02 dmserver /home/dmdba/dmdata/HNSI02/dm.ini
另外,可以登錄系統查看是否可以查詢集群相關視圖:
[dmdba@linux1 ~]$ disql SYSDBA/[email protected]:5236
disql SYSDBA/[email protected]:5237
SQL> SELECT ts.NAME, df.PATH FROM V$TABLESPACE AS ts, V$DATAFILE AS df WHERE ts.ID =df.GROUP_ID;
我這里正常回傳了各個節點的檔案目錄,
11.本地查詢模式
達夢提供了一個集群本地查詢模式(登錄時添加*LOCAL引數),可以用來查詢本機的相關資料,在本地模式下,不能進行DML操作,
[dmdba@linux1 ~]$ disql SYSDBA/SYSDBA*[email protected]:5236
Server[linux1:5236]:mode is normal, state is open
login used time: 41.069(ms)
disql V7.1.5.186-Build(2017.05.23-81019)ENT
Connected to: DM 7.1.5.186
SQL> SELECT ts.NAME, df.PATH FROM V$TABLESPACE AS ts, V$DATAFILE AS df WHERE ts.ID =df.GROUP_ID;
LINEID NAME PATH
---------- ------ ----------------------------------
1 SYSTEM /home/dmdba/dmdata/HNSI01/SYSTEM.DBF
2 MAIN /home/dmdba/dmdata/HNSI01/MAIN.DBF
3 TEMP /home/dmdba/dmdata/HNSI01/TEMP.DBF
4 ROLL /home/dmdba/dmdata/HNSI01/ROLL.DBF
used time: 6.422(ms). Execute id is 796.
測驗:
# 創建用戶和表空間:
# 以下操作在任意EP節點執行,所有EP節點都可見:
create tablespace CCF datafile '/home/dmdba/dmdata/CCF/CCF01.DBF' size 100;
create user ccf identified by "ccf123456" default tablespace ccf;
grant RESOURCE,VTI to ccf;
conn ccf/ccf123456
# 創建哈希分布表 T_HASH,分布列為 C1,
SQL> create table t_hash(c1 int, c2 char(10)) distributed by hash (c1);
# 創建隨機分布表 T_RANDOM,
SQL> create table t_random(c1 int, c2 char(10)) distributed randomly;
# 創建復制分布表 T_FULLY,
SQL> create table t_fully(c1 int, c2 char(10)) distributed fully;
# 創建范圍分布表 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);
# 創建 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);
# 創建哈希分布表的范圍水平磁區表,
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);
在創建分布表時,用戶應注意以下一些使用限制:
1) 單機模式下建的分布表和普通表一樣,但是不能創建指定實體名的分布表(如范圍分布表和LIST分布表);
2) 在MPP模式下創建分布表,如果未指定列則默認為RANDOMLY(隨機)分布表;
3) 分布列型別不支持BLOB、CLOB、IMAGE、TEXT、LONGVARCHAR、BIT、BINARY、VARBINARY、LONGVARBINARY、BFILE、時間間隔型別、虛擬列和用戶自定義型別;
4) HASH 分布、RANGE分布、LIST分布允許更新分布列,并支持包含大欄位列的表的分布列更新,但包含INSTEAD OF觸發器的表、堆表不允許更新分布列;
5) 對于FULLY(復制)分布表,只支持單表查詢的更新和洗掉操作,并且查詢項或者條件運算式中都不能包含ROWID偽列運算式;
6) RANGE (范圍)分布表和LIST(串列)分布表,分布列與分布列值串列必須一致,并且指定的實體名不能重復;
7) 參考約束的參考列和被參考列都必需包含分布列,且分布情況完全相同;
8) 隨機分布表不支持UNIQUE索引,
5. 快速資料裝載
DM MPP 特別適合于海量資料的存盤和處理,因此在應用中常常面臨將大量資料從某個或某些歷史資料庫中裝載到MPP系統的需求,為了滿足海量資料的快速裝載需求,DM提供了快速裝載工具dmfldr,能夠對DM單機版和MPP系統進行海量資料的快速裝載,
dmfldr 為命令列工具,使用時必須指定必要的執行引數,
dmfldr 支持MPP環境下的兩種資料加載模式:客戶端分發模式和本地分發模式,通過引數MPP_CLIENT進行設定,使用客戶端分發模式時,資料在dmfldr客戶端進行分發然后直接向指定EP發送資料;使用本地分發模式時,每個EP對應一個dmfldr和一份資料,每個dmfldr只選擇出對應本節點的資料并發送,不管其他節點的資料,默認使用客戶端分發模式,
6. 停止 MPP 系統
需要停止DM MPP系統的運行時,只需要停止每個EP的DM實體即可,沒有特別的順序要求,
若在DM MPP系統的運行程序中,某一EP發生故障停機,則整個MPP系統將處于不能正常服務的狀態,當前所有的用戶會話會被系統斷開,不能進行全域登錄,只能進行本地登錄,因此,為了保證MPP系統的高可用性,建議采用DM MPP與資料守護相結合的部署方案,
7. MPP 的使用限制
DM MPP 支持絕大多數單機版DM的功能,但在某些小的功能點使用上存在一些使用限制,具體如下:
1) MPP 環境下,不支持創建SET NULL或SET DEFAULT約束檢查規則的參考約束;
2) MPP 環境下不支持創建外部表、間隔磁區表;
3) MPP 環境下不支持修改表的ADD [COLUMN] <列名>[<IDENTITY子句>]子句;
4) MPP 環境下不支持創建位圖索引、空間索引、陣列索引;
5) MPP 環境下位圖連接索引涉及的維度表需FULLY分布;
6) MPP 環境下不支持索引的ONLINE選項;
7) MPP 環境下不支持視圖的WITH CHECK OPTION操作;
8) MPP 環境下不支持閃回查詢;
9) MPP 環境下不支持物化視圖日志;
10) MPP 各EP創建資料庫時指定的編碼格式應相同,否則可能造成亂碼問題;
11) MPP 環境下INI引數MVCC_RETRY_TIMES無效,發生MVCC沖突時直接報錯;
12) MPP 環境下不支持DBMS_JOB包;
13) MPP 環境下日志輔助表不支持FULLY分布,
--------------------------------------------------卸載-----------------------------------
1.卸載腳本服務
每個節點root用戶
cd /home/dmdba/dmdbms/script/root/
./dm_service_uninstaller.sh -n DmServiceHNSI01
2.洗掉資料庫實體
每個節點
rm -rf dmdata/HNSI01/
3.卸載資料庫
每個節點
/home/dmdba/dmdbms/uninstall.sh -i
rm -rf /home/dmdba/*
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/1192.html
標籤:其它
下一篇:DEM 安裝部署
