数据库版本:DM Database 64 V8 03134284172-20240321-222308-20093
操作系统:Redhat 7.9
虚拟机部署采用2sp,1bp,1mp进行部署。
RAFT组名 角色 实例 IP PORT_NUM AP_PORT_NUM
SP_RAFT1 SP SP1 192.*.*.17 5236 6000
SP_RAFT2 SP SP2 192.*.*.17 5237 6001
BP_RAFT1
BP BP11 192.*.*.18 5236 6002
BP BP12 192.*.*.18 5237 6003
BP BP13 192.*.*.18 5238 6004
MP_RAFT MP MP1 192.*.*.17 5238 6005
MP MP2 192.*.*.17 5239 6006
MP MP3 192.*.*.17 5240 6007
初始化SP:
./dminit path=/dm8/sp/sp1 instance_name=SP1 port_num=5236 ap_port_num=6000 page_size=32 log_size=2048 dpc_mode=SP
./dminit path=/dm8/sp/sp2 instance_name=SP2 port_num=5237 ap_port_num=6001 page_size=32 log_size=2048 dpc_mode=SP
初始化MP:
-- 初始化
./dminit path=/dm8/mp/mp1 instance_name=MP1 port_num=5238 ap_port_num=6005 page_size=32 log_size=2048 dpc_mode=MP
./dminit path=/dm8/mp/mp2 instance_name=MP2 port_num=5239 ap_port_num=6006 page_size=32 log_size=2048 dpc_mode=MP
./dminit path=/dm8/mp/mp3 instance_name=MP3 port_num=5240 ap_port_num=6007 page_size=32 log_size=2048 dpc_mode=MP
初始化BP:
-- 初始化
./dminit path=/dm8/bp/bp1 instance_name=BP1 port_num=5236 ap_port_num=6002 page_size=32 log_size=2048 dpc_mode=BP
./dminit path=/dm8/bp/bp2 instance_name=BP2 port_num=5237 ap_port_num=6003 page_size=32 log_size=2048 dpc_mode=BP
./dminit path=/dm8/bp/bp3 instance_name=BP3 port_num=5238 ap_port_num=6004 page_size=32 log_size=2048 dpc_mode=BP
-- mp.ini
# mp_port 端口号必须与 MP、BP 和 SP 上的 ap_port_num 端口号不冲突
[MP1]
mp_host = 192.*.*.17
mp_port = 9000
[MP2]
mp_host = 192.*.*.17
mp_port = 9001
[MP3]
mp_host = 192.*.*.17
mp_port = 9002
注意:需要拷贝mp.ini到SP、BP、MP各实例的INI路径下。
-- 归档参数
ARCH_INI = 1
-- dmarch.ini 此处先只配本地归档,避免提前发起 RAFT 选举
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/mp/mp1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
-- 启动
./dmserver /dm8/mp/mp1/DAMENG/dm.ini dpc_mode=MP
只有在注册当前登录 MP 节点后,才可以注册其余节点。
//增加 MP 节点
//注册当前 MP 实例,MP 的 RAFT 组名可以指定为'MP_RAFT'或缺省 NULL
SP_CREATE_DPC_INSTANCE('MP_RAFT', 'MP1', 'MP', 6008, 5238, '192.*.*.17','', 'STANDBY', 0, 'MP instance');
SP_CREATE_DPC_INSTANCE('MP_RAFT', 'MP2', 'MP', 6009, 5239, '192.*.*.17', '','STANDBY', 0, 'MP instance');
SP_CREATE_DPC_INSTANCE('MP_RAFT', 'MP3', 'MP', 6010, 5240, '192.*.*.17', '', 'STANDBY', 0, 'MP instance');
// 增加BP节点
//注册 RAFT 组,名为 BP_RAFT1
SP_CREATE_DPC_RAFT('BP', 'BP_RAFT1');
//在 BP_RAFT1 组内注册 BP 实例 BP1
SP_CREATE_DPC_INSTANCE('BP_RAFT1', 'BP1', 'BP', 6002, 5236, '192.*.*.18', '','STANDBY', 0, 'BP instance');
SP_CREATE_DPC_INSTANCE('BP_RAFT1', 'BP2', 'BP', 6003, 5237, '192.*.*.18', '','STANDBY', 0, 'BP instance');
SP_CREATE_DPC_INSTANCE('BP_RAFT1', 'BP3', 'BP', 6004, 5238, '192.*.*.18', '','STANDBY', 0, 'BP instance');
//注册一个 BP 组,名为 BG_1
SP_CREATE_DPC_BP_GROUP('BG_1', 'bp group1');
//在 BP 组内添加 RAFT 组
SP_BP_GROUP_ADD_RAFT('BG_1', 'BP_RAFT1');
//增加 SP 节点
//增加 SP,也要注册 RAFT 组
SP_CREATE_DPC_RAFT('SP', 'SP_RAFT1');
//在 SP_RAFT1 内注册 SP 实例 SP1
SP_CREATE_DPC_INSTANCE('SP_RAFT1', 'SP1', 'SP', 6000, 5236, '192.*.*.17', '','NORMAL', 1, 'SP instance');
//增加 SP 节点
//增加 SP,也要注册 RAFT 组
SP_CREATE_DPC_RAFT('SP', 'SP_RAFT2');
//在 SP_RAFT2 内注册 SP 实例 SP2
SP_CREATE_DPC_INSTANCE('SP_RAFT2', 'SP2', 'SP', 6001, 5237, '192.*.*.17', '','NORMAL', 1, 'SP instance');
-- BP组
select * from DPC_BP_GROUP;
查看是否添加成功。
-- RAFT组
select * from DPC_BP_RAFT;
查看是否添加成功。
-- 实例
select * from DPC_INSTANCE;
查看是否添加成功。
-- 备份
backup database '/dm8/mp/mp1/DAMENG/dm.ini' full backupset '/dm8/mp/mp1/bak/full_bak' parallel 8;
-- 还原MP2
restore database '/dm8/mp/mp2/DAMENG/dm.ini' from backupset '/dm8/mp/mp2/bak/full_bak';
recover database '/dm8/mp/mp2/DAMENG/dm.ini' from backupset '/dm8/mp/mp2/bak/full_bak';
recover database '/dm8/mp/mp2/DAMENG/dm.ini' update db_magic;
-- 还原MP3
restore database '/dm8/mp/mp3/DAMENG/dm.ini' from backupset '/dm8/mp/mp3/bak/full_bak';
recover database '/dm8/mp/mp3/DAMENG/dm.ini' from backupset '/dm8/mp/mp3/bak/full_bak';
recover database '/dm8/mp/mp3/DAMENG/dm.ini' update db_magic;
-- MP1、MP2、MP3
ARCH_INI =1
ALTER_MODE_STATUS = 0
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 1500 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 1 #多副本自身节点 ID
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = MP2 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = MP3 #归档目标实例名
ARCH_DEST_ID = 3 #归档目标多副本节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/mp/mp1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2000 #选举超时时间
RAFT_SELF_ID = 2 #多副本自身节点 ID
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = MP1 #归档目标实例名
ARCH_DEST_ID = 1 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = MP3 #归档目标实例名
ARCH_DEST_ID = 3 #归档目标多副本节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/mp/mp2/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2500 #选举超时时间
RAFT_SELF_ID = 3 #多副本自身节点 ID
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = MP1 #归档目标实例名
ARCH_DEST_ID = 1 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = MP2 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/mp/mp2/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
-- 修改启动脚本
DM_HOME="/dm8/dmdbms"
INI_PATH=/dm8/mp/mp1/DAMENG/dm.ini
DPC_MODE=MP
#mount or open
START_MODE=mount
-- 启动MP1
./DmService_MP1 start
-- 修改启动脚本
DM_HOME="/dm8/dmdbms"
INI_PATH=/dm8/mp/mp2/DAMENG/dm.ini
DPC_MODE=MP
#mount or open
START_MODE=mount
-- 启动MP2
./DmService_MP2 start
-- 修改启动脚本
DM_HOME="/dm8/dmdbms"
INI_PATH=/dm8/mp/mp2/DAMENG/dm.ini
DPC_MODE=MP
#mount or open
START_MODE=mount
-- 启动MP3
./DmService_MP2 start
-- 归档参数
ARCH_INI = 1
-- 归档配置,此处先只配本地归档,避免提前发起 RAFT 选举
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/bp/bp1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
-- 正常启动BP1和关闭BP1
./dmserver /dm8/bp/bp1/DAMENG/dm.ini dpc_mode=BP
关闭:ctrl+c
-- 备份
backup database '/dm8/bp/bp1/DAMENG/dm.ini' full backupset '/dm8/bp/bp1/bak/full_bak' parallel 8;
-- 还原BP2
restore database '/dm8/bp/bp2/DAMENG/dm.ini' from backupset '/dm8/bp/bp1/bak/full_bak';
recover database '/dm8/bp/bp2/DAMENG/dm.ini' from backupset '/dm8/bp/bp1/bak/full_bak';
recover database '/dm8/bp/bp2/DAMENG/dm.ini' update db_magic;
-- 还原BP3
restore database '/dm8/bp/bp3/DAMENG/dm.ini' from backupset '/dm8/bp/bp1/bak/full_bak';
recover database '/dm8/bp/bp3/DAMENG/dm.ini' from backupset '/dm8/bp/bp1/bak/full_bak';
recover database '/dm8/bp/bp3/DAMENG/dm.ini' update db_magic;
-- BP1、BP2、BP3
ARCH_INI =1
ALTER_MODE_STATUS = 0
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 1500 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 1 #多副本自身节点 ID
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP2 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP3 #归档目标实例名
ARCH_DEST_ID = 3 #归档目标多副本节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/bp/bp1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2000 #选举超时时间
RAFT_SELF_ID = 2 #多副本自身节点 ID
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP1 #归档目标实例名
ARCH_DEST_ID = 1 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP3 #归档目标实例名
ARCH_DEST_ID = 3 #归档目标多副本节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/bp/bp2/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2500 #选举超时时间
RAFT_SELF_ID = 3 #多副本自身节点 ID
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP1 #归档目标实例名
ARCH_DEST_ID = 1 #多副本归档目标节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP2 #归档目标实例名
ARCH_DEST_ID = 2 #多副本归档目标节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/bp/bp3/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 204800
-- 修改启动脚本
DM_HOME="/dm8/dmdbms"
INI_PATH=/dm8/bp/bp1/DAMENG/dm.ini
DPC_MODE=BP
#mount or open
START_MODE=mount
-- 启动BP1
./DmService_BP1 start
-- 修改启动脚本
DM_HOME="/dm8/dmdbms"
INI_PATH=/dm8/bp/bp2/DAMENG/dm.ini
DPC_MODE=BP
#mount or open
START_MODE=mount
-- 启动BP1
./DmService_BP2 start
-- 修改启动脚本
DM_HOME="/dm8/dmdbms"
INI_PATH=/dm8/bp/bp3/DAMENG/dm.ini
DPC_MODE=BP
#mount or open
START_MODE=mount
-- 启动BP1
./DmService_BP3 start
-- 修改启动脚本
DM_HOME="/dm8/dmdbms"
INI_PATH=/dm8/sp/sp1/DAMENG/dm.ini
DPC_MODE=SP
#mount or open
START_MODE=open
-- 启动SP1
./DmService_SP1 start
-- 修改启动脚本
DM_HOME="/dm8/dmdbms"
INI_PATH=/dm8/sp/sp2/DAMENG/dm.ini
DPC_MODE=SP
#mount or open
START_MODE=open
-- 启动SP2
./DmService_SP2 start
登录计算节点SP查看集群状态。验证是否部署成功。
-- 实例状态
select * from V$instance;
查看集群活跃实例是否正常。
-- 查看归档
select * from v$arch_status;
查看归档状态是否正常。
1、启动所有MP实例
./DmService_MP1 start
./DmService_MP2 start
./DmService_MP3 start
2、启动所有BP实例 -- 启动SP与BP顺序可更改
./DmService_BP1 start
./DmService_BP2 start
./DmService_BP3 start
3、启动所有SP实例
./DmService_SP1 start
./DmService_SP1 start
1、停掉所有SP实例
./DmService_SP1 stop
./DmService_SP2 stop
2、停掉所有BP实例
./DmService_BP1 stop
./DmService_BP2 stop
./DmService_BP3 stop
3、停掉所有MP实例
./DmService_MP1 stop
./DmService_MP2 stop
./DmService_MP3 stop
文章
阅读量
获赞