達夢MPP集群搭建


1. 端口規划

服務器 ip 實例名 PORT_NUM MAL_PORT MAL_DW_PORT GROUP
主1 192.168.44.221 GRP1_MPP_EP01 5236 5337 5253 GRP1
備1 192.168.44.222 GRP1_MPP_EP11 5237 5338 5254 GRP1
主2 192.168.44.222 GRP2_MPP_EP02 5236 5337 5253 GRP2
備2 192.168.44.221 GRP2_MPP_EP22 5237 5338 5254 GRP2

2. 初始化實例

本例中采取機器交叉的方式配置兩個備數據庫
192.168.44.221節點初始化庫至目錄 /home/dmdba/data/:
GRP1主庫:./dminit path=/home/dmdba/data db_name=EP01 instance_name=GRP1_MPP_EP01
GRP2備庫:./dminit path=/home/dmdba/data db_name=EP22 instance_name=GRP2_MPP_EP22
192.168.44.222節點初始化庫至目錄 /home/dmdba/data/:
GRP2主庫:./dminit path=/home/dmdba/data db_name=EP02 instance_name=GRP2_MPP_EP02
GRP1備庫:./dminit path=/home/dmdba/data db_name=EP11 instance_name=GRP1_MPP_EP11

3. 備份還原

1.脫機備份:
./dmrman CTLSTMT="BACKUP DATABASE '/home/dmdba/data/EP01/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/home/dmdba/back/EP01'"
2.拷貝備份文件到備庫所在機器
scp -r /home/dmdba/back/EP01 root@192.168.44.222:/home/dmdba/back
3.執行脫機數據庫還原與恢復
./dmrman ctlstmt="RESTORE DATABASE '/home/dmdba/data/EP11/dm.ini' FROM BACKUPSET '/home/dmdba/back/EP01'"
./dmrman ctlstmt="RECOVER DATABASE '/home/dmdba/data/EP11/dm.ini' FROM BACKUPSET '/home/dmdba/back/EP01'"
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/data/EP11/dm.ini' UPDATE DB_MAGIC"

EP22同EP11。

4. 配置主庫GRP1_MPP_EP01

4.1 配置 dm.ini

INSTANCE_NAME = GRP1_MPP_EP01
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0 
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
MPP_INI = 1
RLOG_SEND_APPLY_MON = 64

4.2 配置 dmmal.ini

MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5

[MAL_INST1]
MAL_INST_NAME = GRP1_MPP_EP01
MAL_HOST = 192.168.44.221
MAL_PORT = 5337
MAL_INST_HOST = 192.168.44.221
MAL_INST_PORT = 5236
MAL_DW_PORT = 5253
MAL_INST_DW_PORT = 5243

[MAL_INST2]
MAL_INST_NAME = GRP2_MPP_EP02
MAL_HOST = 192.168.44.222
MAL_PORT = 5337
MAL_INST_HOST = 192.168.44.222
MAL_INST_PORT = 5236
MAL_DW_PORT = 5253
MAL_INST_DW_PORT = 5243

[MAL_INST3]
MAL_INST_NAME = GRP1_MPP_EP11
MAL_HOST = 192.168.44.222
MAL_PORT = 5338
MAL_INST_HOST = 192.168.44.222
MAL_INST_PORT = 5237
MAL_DW_PORT = 5254
MAL_INST_DW_PORT = 5244

[MAL_INST4]
MAL_INST_NAME = GRP2_MPP_EP22
MAL_HOST = 192.168.44.221
MAL_PORT = 5338
MAL_INST_HOST = 192.168.44.221
MAL_INST_PORT = 5237
MAL_DW_PORT = 5254
MAL_INST_DW_PORT = 5244

4.3 配置 dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_MPP_EP11
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/data/EP01/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

4.4 配置 dmmpp.ctl

[service_name1]
mpp_seq_no = 0
mpp_inst_name = GRP1_MPP_EP01
[service_name2]
mpp_seq_no = 1
mpp_inst_name = GRP2_MPP_EP02

轉換命令如下:
./dmctlcvt TYPE=2 SRC=/home/dmdba/data/EP01/dmmpp.ini DEST=/home/dmdba/data/EP01/dmmpp.ctl

4.5 啟動主庫

以 Mount 方式啟動主庫。
./dmserver /home/dmdba/data/EP01/dm.ini mount

4.6 設置 OGUID、修改數據庫模式

啟動命令行工具 dIsql,使用 MPP 類型為 LOCAL 方式,登錄主庫設置 OGUID 值。

./disql SYSDBA/SYSDBA*LOCAL@localhost:5236
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(45330); 
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

5. 配置主庫GRP2_MPP_EP02

5.1 配置dm.ini

INSTANCE_NAME = GRP2_MPP_EP02
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
MPP_INI = 1
RLOG_SEND_APPLY_MON = 64

5.2 配置dmmal.ini

同GRP1_MPP_EP01

5.3 配置dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP2_MPP_EP22
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/data/EP02/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

5.4 配置 dmmpp.ctl

同GRP_MPP_EP01,拷貝 dmmpp.ctl 到/home/dmdba/data/EP02/目錄即可。

5.5 啟動主庫

以 Mount 方式啟動主庫。
./dmserver /home/dmdba/data/EP02/dm.ini mount

5.6 設置 OGUID、修改數據庫模式

啟動命令行工具 dIsql,使用 MPP 類型為 LOCAL 方式,登錄主庫設置 OGUID 值。

./disql SYSDBA/SYSDBA*LOCAL@localhost:5236
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(45331); 
SQL>alter database primary;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0)

6.配置備庫GRP1_MPP_EP11

6.1 配置dm.ini

INSTANCE_NAME = GRP1_MPP_EP11
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0 
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
MPP_INI = 1
RLOG_SEND_APPLY_MON = 64

6.2 配置 dmmal.ini

直接將實例GRP1_MPP_EP01 配置的dmmal.ini 拷貝到/home/dmdba/data/EP11目錄中。

6.3 配置 dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_MPP_EP01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/data/EP11/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

6.4 配置dmmpp.ctl

直接將實例GRP1_MPP_EP01的dmmpp.ctl拷貝到/home/dmdba/data/EP11目錄中。

6.5 啟動主庫

以 Mount 方式啟動主庫。
./dmserver /home/dmdba/data/EP11/dm.ini mount

6.6 設置 OGUID、修改數據庫模式

啟動命令行工具 dIsql,使用 MPP 類型為 LOCAL 方式,登錄主庫設置 OGUID 值。

./disql SYSDBA/SYSDBA*LOCAL@localhost:5237
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(45330); 
SQL>alter database STANDBY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

7. 配置備庫GRP2_MPP_EP22

7.1 配置dm.ini

INSTANCE_NAME = GRP2_MPP_EP22
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0 
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
MPP_INI = 1
RLOG_SEND_APPLY_MON = 64

7.2 配置 dmmal.ini

直接將實例GRP1_MPP_EP01 配置的dmmal.ini 拷貝到/home/dmdba/data/EP22目錄中。

7.3 配置 dmarch.ini

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP2_MPP_EP02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/data/EP22/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

7.4 配置 dmmpp.ctl

直接將實例GRP1_MPP_EP01的dmmpp.ctl拷貝到/home/dmdba/data/EP22目錄中。

7.5 啟動主庫

以 Mount 方式啟動主庫。
./dmserver /home/dmdba/data/EP22/dm.ini mount

7.6 設置 OGUID、修改數據庫模式

啟動命令行工具 dIsql,使用 MPP 類型為 LOCAL 方式,登錄主庫設置 OGUID 值。

./disql SYSDBA/SYSDBA*LOCAL@localhost:5237
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); 
SQL>sp_set_oguid(45331); 
SQL>alter database STANDBY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

8. 測試

8.1 建立分布列

在GRP1_MPP_EP01上創建 LIST 分布表 T_LIST。
用disql進行全局登錄:
./disql SYSDBA/SYSDBA*GLOBAL@localhost:5236
建分布列表:

CREATE TABLE T_LIST(C1 INT, C2 CHAR(10)) DISTRIBUTED BY LIST (C1) (VALUES(1,2,3,4,5) ON GRP1_MPP_EP01,VALUES(6,7,8,9,10) ON GRP2_MPP_EP02);

建立表T_LIST根據C1字段進行分布。值為1-5的數據行分部到A機器實例名為GRP1_MPP_EP01的庫內。值為6-10的分部到B機器實例名為GRP2_MPP_EP02的庫內。

8.2 插入數據

insert into T_LIST values(1,'a');
insert into T_LIST values(2,'b');
insert into T_LIST values(6,'f');
insert into T_LIST values(7,'g');

image

8.3 驗證數據

GRP1_MPP_EP01使用全局GLOBAL登錄方式查詢出來的結果是各節點的合集,使用LOCAL本地登錄是該節點的數據。
image
GRP2_MPP_EP02使用全局GLOBAL登錄方式查詢出來的結果是各節點的合集,使用LOCAL本地登錄是該節點的數據
image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM