[TOC]
[!important]
sp计算节点,无副本,可部署多个raft组,每个raft组最多一个成员;
bp存储节点,可部署多个raft组,各组数据不同;单机架构每组一个成员;多副本架构时每个raft组是一套主备,主+备成员数量为大于1的奇数;
mp元数据节点,无raft组,只有一套数据,可配置多个副本实例,多副本时总数量同样为大于1的奇数;
[!NOTE]
此例完全参考官方文档《DM8分布计算集群.pdf》;
一个最小的 DMDPC 集群包含一个 BP、一个 SP 和一个 MP。但至少需要两台 BP 才方便看出子任务的各种计划形态和调度;
此例以全部节点部署在单台服务器上为例,多台服务器时可分别部署或交叉部署,ip和端口号按实际情况修改;
此例为2组sp,2组bp+每组2副本,mp+2副本,单机架构或其他副本数量可根据实际情况和本文提示进行修改
检查端口占用情况netstat -tuln | grep 52
netstat -tuln | grep 60
BP组名 | RAFT 组名 | 角 色 | 实例名称 | 外部IP | 内部IP | PORT _NUM | AP_PORT _NUM | MP_PORT | 初始化路径 | 软件目录 |
---|---|---|---|---|---|---|---|---|---|---|
SP_RAFT_1 | SP | SP1 | 192.168.3.88 | 192.168.3.88 | 5236 | 6000 | /opt/dmdata/sp1 | /opt/dmdbms | ||
SP_RAFT_2 | SP | SP2 | 192.168.3.88 | 192.168.3.88 | 5237 | 6001 | /opt/dmdata/sp2 | /opt/dmdbms | ||
BG_1 | BP_RAFT_1 | BP | BP11 | 192.168.3.88 | 192.168.3.88 | 5238 | 6002 | /opt/dmdata/bp11 | /opt/dmdbms | |
BG_1 | BP_RAFT_1 | BP | BP12 | 192.168.3.88 | 192.168.3.88 | 5239 | 6003 | /opt/dmdata/bp12 | /opt/dmdbms | |
BG_1 | BP_RAFT_1 | BP | BP13 | 192.168.3.88 | 192.168.3.88 | 5240 | 6004 | /opt/dmdata/bp13 | /opt/dmdbms | |
BG_1 | BP_RAFT_2 | BP | BP21 | 192.168.3.88 | 192.168.3.88 | 5241 | 6005 | /opt/dmdata/bp21 | /opt/dmdbms | |
BG_1 | BP_RAFT_2 | BP | BP22 | 192.168.3.88 | 192.168.3.88 | 5242 | 6006 | /opt/dmdata/bp22 | /opt/dmdbms | |
BG_1 | BP_RAFT_2 | BP | BP23 | 192.168.3.88 | 192.168.3.88 | 5243 | 6007 | /opt/dmdata/bp23 | /opt/dmdbms | |
MP | MP1 | 192.168.3.88 | 192.168.3.88 | 5244 | 6008 | 9000 | /opt/dmdata/mp1 | /opt/dmdbms | ||
MP | MP2 | 192.168.3.88 | 192.168.3.88 | 5245 | 6009 | 9001 | /opt/dmdata/mp2 | /opt/dmdbms | ||
MP | MP3 | 192.168.3.88 | 192.168.3.88 | 5246 | 6010 | 9002 | /opt/dmdata/mp3 | /opt/dmdbms |
各主机都需要先安装达梦数据库软件,可参考任意部署文档,略
#ap_port_num 分布式环境下协同工作的监听端口
#dpc_mode DPC集群中的实例角色
# sp节点库(2个)
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/sp1 log_size=2048 extent_size=32 page_size=32 instance_name=SP1 port_num=5236 ap_port_num=6000 dpc_mode=SP
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/sp2 log_size=2048 extent_size=32 page_size=32 instance_name=SP2 port_num=5237 ap_port_num=6001 dpc_mode=SP
# bp节点库(2组,每组2副本)
# 1组
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/bp11 log_size=2048 extent_size=32 page_size=32 instance_name=BP11 port_num=5238 ap_port_num=6002 dpc_mode=BP
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/bp12 log_size=2048 extent_size=32 page_size=32 instance_name=BP12 port_num=5239 ap_port_num=6003 dpc_mode=BP
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/bp13 log_size=2048 extent_size=32 page_size=32 instance_name=BP13 port_num=5240 ap_port_num=6004 dpc_mode=BP
# 2组
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/bp21 log_size=2048 extent_size=32 page_size=32 instance_name=BP21 port_num=5241 ap_port_num=6005 dpc_mode=BP
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/bp22 log_size=2048 extent_size=32 page_size=32 instance_name=BP22 port_num=5242 ap_port_num=6006 dpc_mode=BP
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/bp23 log_size=2048 extent_size=32 page_size=32 instance_name=BP23 port_num=5243 ap_port_num=6007 dpc_mode=BP
# mp节点库(2副本)
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/mp1 log_size=2048 extent_size=32 page_size=32 instance_name=MP1 port_num=5244 ap_port_num=6008 dpc_mode=MP
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/mp2 log_size=2048 extent_size=32 page_size=32 instance_name=MP2 port_num=5245 ap_port_num=6009 dpc_mode=MP
[dmdba@localhost opt]$ /opt/dmdbms/bin/dminit path=/opt/dmdata/mp3 log_size=2048 extent_size=32 page_size=32 instance_name=MP3 port_num=5246 ap_port_num=60010 dpc_mode=MP
# 所有实例此文件内容相同,放到dm.ini同路径下,以sp1为例
# mp单实例时配置
[dmdba@localhost opt]$ cat > /opt/dmdata/sp1/DAMENG/mp.ini << 'EOF'
mp_host = 192.168.3.88 #mp实例的ip地址
mp_port = 9000 #mp实例的监听端口号;与 MP、 BP 和 SP 上的 ap_port_num 不冲突的端口号
EOF
# mp多副本时配置
[dmdba@localhost opt]$ cat > /opt/dmdata/sp1/DAMENG/mp.ini << 'EOF'
[MP1]
mp_host = 192.168.3.88 #mp实例的ip地址
mp_port = 9000 #mp实例的监听端口号;与 MP、 BP 和 SP 上的 ap_port_num 不冲突的端口号
[MP2]
mp_host = 192.168.3.88 #mp实例的ip地址
mp_port = 9001 #mp实例的监听端口号;与 MP、 BP 和 SP 上的 ap_port_num 不冲突的端口号
[MP3]
mp_host = 192.168.3.88 #mp实例的ip地址
mp_port = 9002 #mp实例的监听端口号;与 MP、 BP 和 SP 上的 ap_port_num 不冲突的端口号
EOF
[!NOTE]
只有在注册当前登录MP节点后,才可以注册其余节点。后续增加MP、SP节点和BP节点无先后之分
将SP和BP节点加入DMDPC集群中的步骤必须在SP、BP第一次启动前完成
# 启动mp1节点,登录并执行注册命令
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/mp1/DAMENG/dm.ini dpc_mode=MP
[dmdba@localhost ~]$ /opt/dmdbms/bin/disql SYSDBA/SYSDBA:5244
# 注册一个BP/SP/MP实例
# SP_CREATE_DPC_INSTANCE(RAFT_NAME,INST_NAME,DPC_MODE,AP_PORT,INST_PORT,IP_ADDR,IP_INTER,IP_EXTER,SYS_MODE,STATUS,DESC)
# 单机架构时SYS_MODE,STATUS配置为'NORMAL',1
# 多副本架构SYS_MODE,STATUS配置为'STANDBY',2,实例启动后在RAFT组内选举出有效主库,自动更新MP中的模式状态信息
# 注册mp实例(2副本)
# mp的RAFT组名可以指定为'MP_RAFT'或缺省NULL
SP_CREATE_DPC_INSTANCE(NULL,'MP1','MP',6008,5244,'192.168.3.88','192.168.3.88','STANDBY',0,'MP instance');
SP_CREATE_DPC_INSTANCE(NULL,'MP2','MP',6009,5245,'192.168.3.88','192.168.3.88','STANDBY',0,'MP instance');
SP_CREATE_DPC_INSTANCE(NULL,'MP3','MP',6010,5246,'192.168.3.88','192.168.3.88','STANDBY',0,'MP instance');
# 注册bp实例(2组,每组2副本)
# 1.注册RAFT组BP_RAFT_1、BP_RAFT_2()
SP_CREATE_DPC_RAFT('BP','BP_RAFT_1');
SP_CREATE_DPC_RAFT('BP','BP_RAFT_2');
# 2.在组内注册BP实例
# BP_RAFT_1组
SP_CREATE_DPC_INSTANCE('BP_RAFT_1','BP11','BP',6002,5238,'192.168.3.88','192.168.3.88','STANDBY',0,'BP instance');
SP_CREATE_DPC_INSTANCE('BP_RAFT_1','BP12','BP',6003,5239,'192.168.3.88','192.168.3.88','STANDBY',0,'BP instance');
SP_CREATE_DPC_INSTANCE('BP_RAFT_1','BP13','BP',6004,5240,'192.168.3.88','192.168.3.88','STANDBY',0,'BP instance');
# BP_RAFT_2组
SP_CREATE_DPC_INSTANCE('BP_RAFT_2','BP21','BP',6005,5241,'192.168.3.88','192.168.3.88','STANDBY',0,'BP instance');
SP_CREATE_DPC_INSTANCE('BP_RAFT_2','BP22','BP',6006,5242,'192.168.3.88','192.168.3.88','STANDBY',0,'BP instance');
SP_CREATE_DPC_INSTANCE('BP_RAFT_2','BP23','BP',6007,5243,'192.168.3.88','192.168.3.88','STANDBY',0,'BP instance');
# 3.注册一个BP组BG_1并在组内添加 RAFT 组
SP_CREATE_DPC_BP_GROUP('BG_1','bp group1');
SP_BP_GROUP_ADD_RAFT('BG_1','BP_RAFT_1');
SP_BP_GROUP_ADD_RAFT('BG_1','BP_RAFT_2');
# 注册sp实例(两组)
# 1.增加SP也要注册RAFT组,SP类型的RAFT组中最多只能加入一个SP节点
SP_CREATE_DPC_RAFT('SP','SP_RAFT_1');
SP_CREATE_DPC_RAFT('SP','SP_RAFT_2');
# 2.在组内注册SP实例
SP_CREATE_DPC_INSTANCE('SP_RAFT_1','SP1','SP',6000,5236,'192.168.3.88','192.168.3.88','NORMAL',1,'SP instance');
SP_CREATE_DPC_INSTANCE('SP_RAFT_2','SP2','SP',6001,5237,'192.168.3.88','192.168.3.88','NORMAL',1,'SP instance');
# 检查是否能查询到相关信息
select * from DPC_BP_GROUP; # 记录系统中注册的每个 BP 组信息
select * from DPC_BP_RAFT; # 记录系统中注册的每个 RAFT 组信息
select * from DPC_INSTANCE; # 记录系统中所有实例对象信息
退出刚才注册服务时启动的mp1,并进行备份
dmrman ctlstmt="backup database '/opt/dmdata/mp1/DAMENG/dm.ini' full backupset '/opt/fullbak_mp'"
# 还原备份
# mp2
[dmdba@localhost ~]$ dmrman ctlstmt="restore database '/opt/dmdata/mp2/DAMENG/dm.ini' from backupset '/opt/fullbak_mp'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/mp2/DAMENG/dm.ini' from backupset '/opt/fullbak_mp'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/mp2/DAMENG/dm.ini' update db_magic"
# mp3
[dmdba@localhost ~]$ dmrman ctlstmt="restore database '/opt/dmdata/mp3/DAMENG/dm.ini' from backupset '/opt/fullbak_mp'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/mp3/DAMENG/dm.ini' from backupset '/opt/fullbak_mp'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/mp3/DAMENG/dm.ini' update db_magic"
# 修改dm.ini,所有节点相同
[dmdba@localhost ~]$ vi /opt/dmdata/mp1/DAMENG/dm.ini
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 0 #不允许用户直接通过 SQL 语句修改服务器模式
# vi /opt/dmdata/mp2/DAMENG/dm.ini
# vi /opt/dmdata/mp3/DAMENG/dm.ini
# 编辑dmarch.ini
# mp1
[dmdba@localhost ~]$ cat > /opt/dmdata/mp1/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 1500 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 1 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/mp1/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[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
EOF
# mp2
[dmdba@localhost ~]$ cat > /opt/dmdata/mp2/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2000 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 2 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/mp2/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[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
EOF
# mp3
[dmdba@localhost ~]$ cat > /opt/dmdata/mp3/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2500 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 3 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/mp3/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = MP2 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = MP1 #归档目标实例名
ARCH_DEST_ID = 1 #归档目标多副本节点 ID
EOF
# 启动所有mp
# 启动完成后,RAFT组内的MP会自动选出主库,待主库选举完成后,整个MP系统即可正常运行
# 单机架构不用加MOUNT
[dmdba@localhost ~]$ dmserver /opt/dmdata/mp1/DAMENG/dm.ini dpc_mode=MP MOUNT
[dmdba@localhost ~]$ dmserver /opt/dmdata/mp2/DAMENG/dm.ini dpc_mode=MP MOUNT
[dmdba@localhost ~]$ dmserver /opt/dmdata/mp3/DAMENG/dm.ini dpc_mode=MP MOUNT
# 刚初始化的库必须先启动一次,否则备份会报错系统信息无效
[dmdba@localhost opt]$ dmserver /opt/dmdata/bp11/DAMENG/dm.ini dpc_mode=bp
[dmdba@localhost opt]$ dmserver /opt/dmdata/bp21/DAMENG/dm.ini dpc_mode=bp
# 备份各raft组的主节点,此处暂定为bp11、bp21
[dmdba@localhost ~]$ dmrman ctlstmt="backup database '/opt/dmdata/bp11/DAMENG/dm.ini' full backupset '/opt/fullbak_bp11'"
[dmdba@localhost ~]$ dmrman ctlstmt="backup database '/opt/dmdata/bp21/DAMENG/dm.ini' full backupset '/opt/fullbak_bp21'"
# 将各raft组主节点备份还原至各raft组副本节点
# bp12
[dmdba@localhost ~]$ dmrman ctlstmt="restore database '/opt/dmdata/bp12/DAMENG/dm.ini' from backupset '/opt/fullbak_bp11'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/bp12/DAMENG/dm.ini' from backupset '/opt/fullbak_bp11'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/bp12/DAMENG/dm.ini' update db_magic"
# bp13
[dmdba@localhost ~]$ dmrman ctlstmt="restore database '/opt/dmdata/bp13/DAMENG/dm.ini' from backupset '/opt/fullbak_bp11'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/bp13/DAMENG/dm.ini' from backupset '/opt/fullbak_bp11'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/bp13/DAMENG/dm.ini' update db_magic"
# bp22
[dmdba@localhost ~]$ dmrman ctlstmt="restore database '/opt/dmdata/bp22/DAMENG/dm.ini' from backupset '/opt/fullbak_bp21'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/bp22/DAMENG/dm.ini' from backupset '/opt/fullbak_bp21'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/bp22/DAMENG/dm.ini' update db_magic"
# bp23
[dmdba@localhost ~]$ dmrman ctlstmt="restore database '/opt/dmdata/bp23/DAMENG/dm.ini' from backupset '/opt/fullbak_bp21'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/bp23/DAMENG/dm.ini' from backupset '/opt/fullbak_bp21'"
[dmdba@localhost ~]$ dmrman ctlstmt="recover database '/opt/dmdata/bp23/DAMENG/dm.ini' update db_magic"
# 修改dm.ini,所有节点相同
[dmdba@localhost ~]$ vi /opt/dmdata/bp11/DAMENG/dm.ini
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 0 #不允许用户直接通过 SQL 语句修改服务器模式
# vi /opt/dmdata/bp12/DAMENG/dm.ini
# vi /opt/dmdata/bp13/DAMENG/dm.ini
# vi /opt/dmdata/bp21/DAMENG/dm.ini
# vi /opt/dmdata/bp22/DAMENG/dm.ini
# vi /opt/dmdata/bp23/DAMENG/dm.ini
# 配置dmarch.ini
# bp11
[dmdba@localhost ~]$ cat > /opt/dmdata/bp11/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 1500 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 1 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/bp11/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP12 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP13 #归档目标实例名
ARCH_DEST_ID = 3 #归档目标多副本节点 ID
EOF
# bp12
[dmdba@localhost ~]$ cat > /opt/dmdata/bp12/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2000 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 2 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/bp12/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP11 #归档目标实例名
ARCH_DEST_ID = 1 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP13 #归档目标实例名
ARCH_DEST_ID = 3 #归档目标多副本节点 ID
EOF
# bp13
[dmdba@localhost ~]$ cat > /opt/dmdata/bp13/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2500 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 3 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/bp13/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP12 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP11 #归档目标实例名
ARCH_DEST_ID = 1 #归档目标多副本节点 ID
EOF
# 配置dmarch.ini
# bp21
[dmdba@localhost ~]$ cat > /opt/dmdata/bp21/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 1500 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 1 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/bp21/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP22 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP23 #归档目标实例名
ARCH_DEST_ID = 3 #归档目标多副本节点 ID
EOF
# bp22
[dmdba@localhost ~]$ cat > /opt/dmdata/bp22/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2000 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 2 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/bp22/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP21 #归档目标实例名
ARCH_DEST_ID = 1 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP23 #归档目标实例名
ARCH_DEST_ID = 3 #归档目标多副本节点 ID
EOF
# bp23
[dmdba@localhost ~]$ cat > /opt/dmdata/bp23/DAMENG/dmarch.ini <<'EOF'
XMAL_HB_INTERVAL = 5 #节点通信检测间隔
RAFT_HB_INTERVAL = 150 #选举心跳间隔
RAFT_VOTE_INTERVAL = 2500 #选举超时时间,三个库设置不同以尽快选出主库
RAFT_SELF_ID = 3 #多副本自身节点 ID
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/dmdata/bp23/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 2048 #本地单个归档文件最大值,单位 MB
ARCH_SPACE_LIMIT = 40960 #本地归档文件总大小,0 表示无限制
[ARCHIVE_RAFT1]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP22 #归档目标实例名
ARCH_DEST_ID = 2 #归档目标多副本节点 ID
[ARCHIVE_RAFT2]
ARCH_TYPE = RAFT #RAFT 归档
ARCH_DEST = BP21 #归档目标实例名
ARCH_DEST_ID = 1 #归档目标多副本节点 ID
EOF
# bp和sp的启动无先后之分
# bp
# 启动完成后,RAFT组内会自动选出主库,待主库选举完成后,整个系统即可正常运行
# 单机架构不用加MOUNT
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/bp11/DAMENG/dm.ini dpc_mode=BP MOUNT
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/bp12/DAMENG/dm.ini dpc_mode=BP MOUNT
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/bp13/DAMENG/dm.ini dpc_mode=BP MOUNT
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/bp21/DAMENG/dm.ini dpc_mode=BP MOUNT
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/bp22/DAMENG/dm.ini dpc_mode=BP MOUNT
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/bp23/DAMENG/dm.ini dpc_mode=BP MOUNT
# sp
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/sp1/DAMENG/dm.ini dpc_mode=SP
[dmdba@localhost ~]$ /opt/dmdbms/bin/dmserver /opt/dmdata/sp2/DAMENG/dm.ini dpc_mode=SP
# 启动成功后SP上执行查询V$instance可以看到所有RAFT组中实例
# mp
# 单机架构不用加-m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p MP1 -dm_ini /opt/dmdata/mp1/DAMENG/dm.ini -dpc_mode MP -m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p MP2 -dm_ini /opt/dmdata/mp2/DAMENG/dm.ini -dpc_mode MP -m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p MP3 -dm_ini /opt/dmdata/mp3/DAMENG/dm.ini -dpc_mode MP -m mount
# BP
# 单机架构不用加-m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p BP11 -dm_ini /opt/dmdata/bp11/DAMENG/dm.ini -dpc_mode BP -m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p BP12 -dm_ini /opt/dmdata/bp12/DAMENG/dm.ini -dpc_mode BP -m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p BP13 -dm_ini /opt/dmdata/bp13/DAMENG/dm.ini -dpc_mode BP -m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p BP21 -dm_ini /opt/dmdata/bp21/DAMENG/dm.ini -dpc_mode BP -m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p BP22 -dm_ini /opt/dmdata/bp22/DAMENG/dm.ini -dpc_mode BP -m mount
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p BP23 -dm_ini /opt/dmdata/bp23/DAMENG/dm.ini -dpc_mode BP -m mount
# SP
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p SP1 -dm_ini /opt/dmdata/sp1/DAMENG/dm.ini -dpc_mode SP
[root@localhost ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p SP2 -dm_ini /opt/dmdata/sp2/DAMENG/dm.ini -dpc_mode SP
启动:MP-BP-SP
退出:SP-BP-MP
[!WARNING]
如果没有按正常顺序退出,可能会导致剩下的机器直接宕机。此时,只能对其他的机器采用强杀。这种服务器异常退出的情况,当再次重启的时候,服务器需要做大量的 REDO 日志,因此重启的时间会稍长一些,其它没有影响
文章
阅读量
获赞