DM8分布式计算集群官方文档中,DPC的部署方案全部基于一台服务器创建多实例完成,并且部署环境为Windows,但是生产环境多使用Linux并且基于多台服务器部署,因此此次使用四台服务器模拟生产环境在Linux上部署DMDPC测试集群。完成部署后,对BP节点进行纵向增删实验,对SP节点进行横向增删实验。
基于BP2服务器,克隆一台虚拟机,当前为测试环境,因此仅需少量资源。
因为是克隆环境,因此已经部署了DM8软件,只需要关闭并删除当前已经存在的实例即可。
pkill dmdba
rm -rf BP11 BP12 BP12
echo " export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool" >> ~/.bash_profile
source .bash_profile
dminit path=/dmdba PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 LOG_SIZE=256 DB_NAME=BP14 INSTANCE_NAME=BP14 PORT_NUM=5244 ap_port_num=6008 dpc_mode=BP SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123
dminit path=/dmdba PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 LOG_SIZE=256 DB_NAME=BP15 INSTANCE_NAME=BP15 PORT_NUM=5245 ap_port_num=6009 dpc_mode=BP SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123
#在MP节点将新初始化的节点注册进待新增节点的 RAFT_1 组中
disql sysdba/Dameng123@localhost:5237
SP_CREATE_DPC_INSTANCE('RAFT_1', 'BP14', 'BP', 6008, 5244, '192.168.20.135', 'STANDBY', 0, 'BP instance');
SP_CREATE_DPC_INSTANCE('RAFT_1', 'BP15', 'BP', 6009 ,5245, '192.168.20.135', 'STANDBY', 0, 'BP instance');
#创建BP14/15的归档目录
mkdir -p /dmdba/{BP14,BP15}/arch
#修改BP14归档配置文件
cat >/dmdba/BP14/dmarch.ini<<EOF
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2000 #选举超时时间 三个库设置不同以尽快选出主库
RAFT_SELF_ID = 4 # 多副本自身节点 ID
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP11 #归档目标实例名
ARCH_DEST_ID = 1 # 归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP12 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT3]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP13 #归档目标实例名
ARCH_DEST_ID = 3 # 归档目标多副本节点 ID
[ARCHIVE_RAFT4]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP15 #归档目标实例名
ARCH_DEST_ID =5 #归档目标多副本节点 ID
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdba/BP14/arch #本地归档文件路径
ARCH_FILE_SIZE = 128 #本地单个归档文件最大值 单位 MB
ARCH_SPACE_LIMIT = 0 #本地归档文件总大小 ,0 表示无限制
EOF
#修改BP15归档配置文件
cat >/dmdba/BP15/dmarch.ini<<EOF
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2500 #选举超时时间 三个库设置不同以尽快选出主库
RAFT_SELF_ID = 5 # 多副本自身节点 ID
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP11 #归档目标实例名
ARCH_DEST_ID = 1 # 归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP12 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT3]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP13 #归档目标实例名
ARCH_DEST_ID = 3 # 归档目标多副本节点 ID
[ARCHIVE_RAFT4]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP14 #归档目标实例名
ARCH_DEST_ID = 4 #归档目标多副本节点 ID
[ARCHIVE_LOCAL]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdba/BP15/arch #本地归档文件路径
ARCH_FILE_SIZE = 128 #本地单个归档文件最大值 单位 MB
ARCH_SPACE_LIMIT = 0 #本地归档文件总大小 ,0 表示无限制
EOF
#BP14配置mp.ini
cat >/dmdba/BP14/mp.ini <<EOF
mp_host=192.168.20.132
mp_port=9000
EOF
#BP15配置mp.ini
cat >/dmdba/BP15/mp.ini <<EOF
mp_host=192.168.20.132
mp_port=9000
EOF
#BP1组主节点确认AP服务
ps -ef|grep dmdba|grep dmap
#如果没有启动,则启动,用于BP1主节点备份使用
DmAPService start
#查看当前集群节点信息
SQL> select * from dpc_instance ;
行号 RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS DESCRIPTION IP_EXTERNAL INFO1
---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- ----------- -------------- -----------
INFO2 INFO3
-------------------- ----------
1 0 4096 MP MP 6001 5237 192.168.20.132 NORMAL 4 1 MP INSTANCE 192.168.20.132 74536
0 NULL
2 1 4097 BP11 BP 6002 5238 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 65536
0 NULL
3 1 4098 BP12 BP 6003 5239 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 131072
0 NULL
行号 RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS DESCRIPTION IP_EXTERNAL INFO1
---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- ----------- -------------- -----------
INFO2 INFO3
-------------------- ----------
4 1 4099 BP13 BP 6004 5240 192.168.20.133 PRIMARY 4 1 BP INSTANCE 192.168.20.133 196608
0 NULL
5 2 4100 BP21 BP 6005 5241 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 65536
0 NULL
6 2 4101 BP22 BP 6006 5242 192.168.20.134 PRIMARY 4 1 BP INSTANCE 192.168.20.134 131072
0 NULL
行号 RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS DESCRIPTION IP_EXTERNAL INFO1
---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- ----------- -------------- -----------
INFO2 INFO3
-------------------- ----------
7 2 4102 BP23 BP 6007 5243 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 196608
0 NULL
8 3 4103 SP1 SP 6000 5236 192.168.20.131 NORMAL 4 1 SP INSTANCE 192.168.20.131 NULL
0 NULL
9 1 4104 BP14 BP 6008 5244 192.168.20.135 STANDBY 6 0 BP instance 192.168.20.135 NULL
0 NULL
行号 RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS DESCRIPTION IP_EXTERNAL INFO1
---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- ----------- -------------- -----------
INFO2 INFO3
-------------------- ----------
10 1 4105 BP15 BP 6009 5245 192.168.20.135 STANDBY 6 0 BP instance 192.168.20.135 NULL
0 NULL
10 rows got
已用时间: 14.483(毫秒). 执行号:12583315.
#登录BP1主服务器
disql sysdba/Dameng123@localhost:5240
#在线备份
BACKUP DATABASE FULL TO BACKUP_13 BACKUPSET '/dmdba/BP13/bak' ;
#传输备份
scp -r /dmdba/BP13/bak_BP13 dmdba@192.168.20.135:/dmdba/BP14/bak
scp -r /dmdba/BP13/bak_BP13 dmdba@192.168.20.135:/dmdba/BP15/bak
#BP14、BP15节点启动AP服务
DmAPService start
#BP14节点恢复数据
dmrman CTLSTMT="RESTORE DATABASE '/dmdba/BP14/dm.ini' FROM BACKUPSET 'bak_BP13'" USE_AP=2
#恢复数据库
dmrman CTLSTMT="RECOVER DATABASE '/dmdba/BP14/dm.ini' FROM BACKUPSET 'bak_BP13';"
#更新数据库:
dmrman CTLSTMT="RECOVER DATABASE '/dmdba/BP14/dm.ini' UPDATE DB_MAGIC" USE_AP=2
#BP15节点恢复数据
dmrman CTLSTMT="RESTORE DATABASE '/dmdba/BP15/dm.ini' FROM BACKUPSET 'bak_BP13'" USE_AP=2
#恢复数据库
dmrman CTLSTMT="RECOVER DATABASE '/dmdba/BP15/dm.ini' FROM BACKUPSET 'bak_BP13';"
#更新数据库:
dmrman CTLSTMT="RECOVER DATABASE '/dmdba/BP15/dm.ini' UPDATE DB_MAGIC" USE_AP=2
1.6 启动新增节点
#BP14、BP15节点修改配置文件
sed -i -e 's/ALTER_MODE_STATUS[ ]*=[ ]*1/ALTER_MODE_STATUS = 0/;s/[ ]*ARCH_INI[ ]*=[ ]*0/ARCH_INI = 1/' /dmdba/BP14/dm.ini && grep -E 'ALTER_MODE_STATUS|ARCH_INI' /dmdba/BP14/dm.ini
sed -i -e 's/ALTER_MODE_STATUS[ ]*=[ ]*1/ALTER_MODE_STATUS = 0/;s/[ ]*ARCH_INI[ ]*=[ ]*0/ARCH_INI = 1/' /dmdba/BP15/dm.ini && grep -E 'ALTER_MODE_STATUS|ARCH_INI' /dmdba/BP15/dm.ini
#BP14、BP15节点注册服务
su - root
cd /dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p BP14 -dpc_mode BP -dm_ini /dmdba/BP14/dm.ini -m mount
./dm_service_installer.sh -t dmserver -p BP15 -dpc_mode BP -dm_ini /dmdba/BP15/dm.ini -m mount
#启动BP14/BP15节点
DmServiceBP14 start
DmServiceBP15 start
1.7 新增节点加入集群
#BP1主节点
#将14、15以learner的角色加入进RAFT组
disql sysdba/Dameng123@localhost:5240
SP_ADD_RAFT_LEARNER('BP14','192.168.20.135',6008,4);
SP_ADD_RAFT_LEARNER('BP15','192.168.20.135',6009,5);
#将新节点加入集群
SP_ALTER_RAFT_NODE('BP11/BP12/BP13/BP14/BP15');
#查看当前集群节点信息
SQL> select * from dpc_instance ;
行号 RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS DESCRIPTION IP_EXTERNAL INFO1 INFO2 INFO3
---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- ----------- -------------- ----------- -------------------- ----------
1 0 4096 MP MP 6001 5237 192.168.20.132 NORMAL 4 1 MP INSTANCE 192.168.20.132 74536 0 NULL
2 1 4097 BP11 BP 6002 5238 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 65536 0 NULL
3 1 4098 BP12 BP 6003 5239 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 131072 0 NULL
4 1 4099 BP13 BP 6004 5240 192.168.20.133 PRIMARY 4 1 BP INSTANCE 192.168.20.133 196608 0 NULL
5 2 4100 BP21 BP 6005 5241 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 65536 0 NULL
6 2 4101 BP22 BP 6006 5242 192.168.20.134 PRIMARY 4 1 BP INSTANCE 192.168.20.134 131072 0 NULL
7 2 4102 BP23 BP 6007 5243 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 196608 0 NULL
8 3 4103 SP1 SP 6000 5236 192.168.20.131 NORMAL 4 1 SP INSTANCE 192.168.20.131 NULL 0 NULL
9 1 4104 BP14 BP 6008 5244 192.168.20.135 STANDBY 4 0 BP instance 192.168.20.135 NULL 0 NULL
10 1 4105 BP15 BP 6009 5245 192.168.20.135 STANDBY 4 0 BP instance 192.168.20.135 NULL 0 NULL
10 rows got
已用时间: 2.971(毫秒). 执行号:1409.
SQL>
#连接主节点
disql sysdba/Dameng123@localhost:5240
SP_ALTER_RAFT_NODE('BP11/BP12/BP13');
[dmdba@localhost ~]$ disql sysdba/Dameng123@localhost:5237
SQL> SP_DROP_DPC_INSTANCE('BP14');
SP_DROP_DPC_INSTANCE('BP15');
DMSQL 过程已成功完成
已用时间: 4.377(毫秒). 执行号:1410.
SQL> DMSQL 过程已成功完成
已用时间: 2.802(毫秒). 执行号:1411.
SQL>
SQL> select * from dpc_instance ;
行号 RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS DESCRIPTION IP_EXTERNAL INFO1 INFO2 INFO3
---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- ----------- -------------- ----------- -------------------- ----------
1 0 4096 MP MP 6001 5237 192.168.20.132 NORMAL 4 1 MP INSTANCE 192.168.20.132 74536 0 NULL
2 1 4097 BP11 BP 6002 5238 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 65536 0 NULL
3 1 4098 BP12 BP 6003 5239 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 131072 0 NULL
4 1 4099 BP13 BP 6004 5240 192.168.20.133 PRIMARY 4 1 BP INSTANCE 192.168.20.133 196608 0 NULL
5 2 4100 BP21 BP 6005 5241 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 65536 0 NULL
6 2 4101 BP22 BP 6006 5242 192.168.20.134 PRIMARY 4 1 BP INSTANCE 192.168.20.134 131072 0 NULL
7 2 4102 BP23 BP 6007 5243 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 196608 0 NULL
8 3 4103 SP1 SP 6000 5236 192.168.20.131 NORMAL 4 1 SP INSTANCE 192.168.20.131 NULL 0 NULL
8 rows got
已用时间: 0.669(毫秒). 执行号:2401.
SQL>
dminit path=/dmdba PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 LOG_SIZE=256 DB_NAME=SP2 INSTANCE_NAME=SP2 PORT_NUM=5246 ap_port_num=6010 dpc_mode=SP SYSDBA_PWD=Dameng123 SYSAUDITOR_PWD=Dameng123
#MP节点为 SP 创建一个新的 RAFT 组,名称为 RAFT_SP1
SP_CREATE_DPC_RAFT('SP', 'RAFT_SP2');
#在 RAFT_SP2 内注册 SP 实例,名称为 SP2 。此处的实例 SP2 是提前初始化好的
SP_CREATE_DPC_INSTANCE('RAFT_SP2', 'SP2', 'SP', 6010, 5246, '192.168.20.135', '','NORMAL', 2, 'SP instance');
#将MP.INI文件拷贝到SP2的dm.ini同级目录
cat >/dmdba/SP2/mp.ini <<EOF
mp_host=192.168.20.132
mp_port=9000
EOF
su - root
/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p SP2 -dpc_mode SP -dm_ini /dmdba/SP2/dm.ini
[root@localhost root]# su - dmdba
Last login: Fri Jun 20 00:04:09 CST 2025 on pts/0
[dmdba@localhost ~]$ DmServiceSP2 start
Starting DmServiceSP2:
[ OK ]
[dmdba@localhost ~]$ disql sysdba/Dameng123@localhost:5237
SQL> SQL> select * from dpc_instance ;
行号 RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS DESCRIPTION IP_EXTERNAL INFO1 INFO2 INFO3
---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- ----------- -------------- ----------- -------------------- ----------
1 0 4096 MP MP 6001 5237 192.168.20.132 NORMAL 4 1 MP INSTANCE 192.168.20.132 74536 0 NULL
2 1 4097 BP11 BP 6002 5238 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 65536 0 NULL
3 1 4098 BP12 BP 6003 5239 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 131072 0 NULL
4 1 4099 BP13 BP 6004 5240 192.168.20.133 PRIMARY 4 1 BP INSTANCE 192.168.20.133 196608 0 NULL
5 2 4100 BP21 BP 6005 5241 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 65536 0 NULL
6 2 4101 BP22 BP 6006 5242 192.168.20.134 PRIMARY 4 1 BP INSTANCE 192.168.20.134 131072 0 NULL
7 2 4102 BP23 BP 6007 5243 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 196608 0 NULL
8 3 4103 SP1 SP 6000 5236 192.168.20.131 NORMAL 4 1 SP INSTANCE 192.168.20.131 NULL 0 NULL
9 4 4106 SP2 SP 6010 5246 192.168.20.135 NORMAL 4 1 SP instance NULL 0 NULL
9 rows got
已用时间: 0.456(毫秒). 执行号:2430.
SQL> SQL>
#下线需要删除的SP节点
[dmdba@localhost ~]$ DmServiceSP2 stop
Stopping DmServiceSP2: [ OK ]
[dmdba@localhost ~]$
#登录MP节点
[dmdba@localhost ~]$ disql sysdba/Dameng123@localhost:5237
#移除 SP 实例
SP_DROP_DPC_INSTANCE('SP2');
#删除 RAFT 组
SP_DROP_DPC_BP_RAFT('RAFT_SP2');
SQL> select * from dpc_instance ;
行号 RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS DESCRIPTION IP_EXTERNAL INFO1 INFO2 INFO3
---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- ----------- -------------- ----------- -------------------- ----------
1 0 4096 MP MP 6001 5237 192.168.20.132 NORMAL 4 1 MP INSTANCE 192.168.20.132 74536 0 NULL
2 1 4097 BP11 BP 6002 5238 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 65536 0 NULL
3 1 4098 BP12 BP 6003 5239 192.168.20.133 STANDBY 4 0 BP INSTANCE 192.168.20.133 131072 0 NULL
4 1 4099 BP13 BP 6004 5240 192.168.20.133 PRIMARY 4 1 BP INSTANCE 192.168.20.133 196608 0 NULL
5 2 4100 BP21 BP 6005 5241 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 65536 0 NULL
6 2 4101 BP22 BP 6006 5242 192.168.20.134 PRIMARY 4 1 BP INSTANCE 192.168.20.134 131072 0 NULL
7 2 4102 BP23 BP 6007 5243 192.168.20.134 STANDBY 4 0 BP INSTANCE 192.168.20.134 196608 0 NULL
8 3 4103 SP1 SP 6000 5236 192.168.20.131 NORMAL 4 1 SP INSTANCE 192.168.20.131 NULL 0 NULL
8 rows got
已用时间: 2.373(毫秒). 执行号:2434.
SQL> SQL>
文章
阅读量
获赞