一个最小的 DMDPC 集群包含一个 BP、一个 SP 和一个 MP。可以在部署完毕后随时增添新的 BP、SP 节点。至少需要两台 BP 才方便看出子任务的各种计划形态和调度。
容错域:多个 MP、BP 节点在同一个物理区域内的集合,也就是机房、城市、地区等,一个物理区域发生灾难故障,其他区域进行接管。
BS模式:属于BP节点一种启动模式,常规BP模式仅作为后台数据存储节点,不可以进行数据交互。BS模式同时具有BP和SP的功能,如果查询或修改的数据都在直连的 BP 本地,则类似于单节点,执行时无网络交互的代价。
IP 和端口分配如下表所示,仅用作示例,需按实际 IP 进行设置。MP、BP 采用单机模式,未配置为多副本系统。
Windows 和 Linux 环境下部署 DMDPC 集群并无太大区别。以下就以在同一台 Windows 主机为例介绍如何部署。
./dminit path=d:\data\dmdata\dpc_data\sp1 instance_name=SP1 port_num=5237 ap_port_num=6000 dpc_mode=SP
./dminit path=d:\data\dmdata\dpc_data\mp instance_name=MP port_num=5238 ap_port_num=6001 dpc_mode=MP
./dminit path=d:\data\dmdata\dpc_data\bp1 instance_name=BP1 port_num=5240 ap_port_num=6002 dpc_mode=BP
./dminit path=d:\data\dmdata\dpc_data\bp2 instance_name=BP2 port_num=5241 ap_port_num=6003 dpc_mode=BPmp_host = localhost
mp_port = 9000 #与MP、BP和SP上的ap_port_num不冲突的端口号./dmserver d:\data\dmdata\dpc_data\mp\DAMENG\dm.ini dpc_mode=MP登录MP进行操作
./disql SYSDBA/SYSDBA@LOCALHOST:5238
//增加MP节点
//注册当前MP实例,MP的RAFT组名可以指定为NULL或者'MP_RAFT'
SP_CREATE_DPC_INSTANCE(NULL,'MP','MP',6001,5238, 'LOCALHOST', 'LOCALHOST','NORMAL',1,'MP instance');
//增加两个BP节点:BP1和BP2
//注册RAFT组,名为RAFT_1
SP_CREATE_DPC_RAFT('BP','RAFT_1');
//在RAFT_1组内注册BP实例BP1
SP_CREATE_DPC_INSTANCE('RAFT_1','BP1','BP',6002,5240, 'LOCALHOST', 'LOCALHOST','NORMAL',1,'BP instance');
//注册RAFT_2
SP_CREATE_DPC_RAFT('BP', 'RAFT_2');
//在RAFT_2内注册BP实例BP2
SP_CREATE_DPC_INSTANCE('RAFT_2','BP2','BP',6003,5241, 'LOCALHOST', 'LOCALHOST', 'NORMAL', 1, 'BP instance');
//注册一个BP组,名为BG_1
SP_CREATE_DPC_BP_GROUP('BG_1', 'bp group1');
//往BP组中添加RAFT组
SP_BP_GROUP_ADD_RAFT('BG_1', 'RAFT_1');
SP_BP_GROUP_ADD_RAFT('BG_1', 'RAFT_2');
//增加SP节点:SP1
//增加SP,也要注册RAFT组
SP_CREATE_DPC_RAFT('SP', 'RAFT_SP1');
//在RAFT_SP1内注册SP实例SP1
SP_CREATE_DPC_INSTANCE('RAFT_SP1','SP1','SP',6000,5237, 'LOCALHOST', 'LOCALHOST','NORMAL', 2, 'SP instance');
//注册一个容错域:FDOM_1 (可选)
SP_CREATE_FAULT_DOMAIN ('FDOM_1','shanghai');
//往容错域中添加实例
SP_FAULT_DOMAIN_MV_INST('FDOM_1','MP');
SP_FAULT_DOMAIN_MV_INST('FDOM_1','BP1');
SP_FAULT_DOMAIN_MV_INST('FDOM_1','BP2');在MP节点上检查上一步骤的注册是否成功。能查到相关信息表示注册成功。
select * from DPC_BP_GROUP;
行号 ID NAME DESCRIPTION RAFT_NUM RAFT_INFO INFO1 INFO2 INFO3
---------- ----------- ---- ----------- ----------- ---------- ----------- -------------------- ----------
1 0 BG_1 bp group1 2 0x01000200 0 NULL NULL
已用时间: 1.044(毫秒). 执行号:73015.
select * from DPC_BP_RAFT;
行号 RAFT_ID GROUP_ID DPC_MODE NAME IS_VALID INFO1 INFO2 INFO3
---------- ----------- ----------- -------- -------- ----------- ----------- -------------------- ----------
1 0 -1 MP MP_RAFT 1 NULL NULL NULL
2 1 -1 BP RAFT_1 1 NULL NULL NULL
3 2 -1 BP RAFT_2 1 NULL NULL NULL
4 3 -1 SP RAFT_SP1 1 NULL NULL NULL
已用时间: 0.951(毫秒). 执行号:73016.
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 5238 LOCALHOST NORMAL 4 1 MP instance LOCALHOST 74536
0 NULL
2 1 4097 BP1 BP 6002 5240 LOCALHOST NORMAL 6 1 BP instance LOCALHOST 65536
0 NULL
3 2 4098 BP2 BP 6003 5241 LOCALHOST NORMAL 6 1 BP instance LOCALHOST 65536
0 NULL
4 3 4099 SP1 SP 6000 5237 LOCALHOST NORMAL 6 2 SP instance LOCALHOST NULL
0 NULL
已用时间: 0.500(毫秒). 执行号:73019../dmserver d:\data\dmdata\dpc_data\sp1\DAMENG\dm.ini dpc_mode=SP
./dmserver d:\data\dmdata\dpc_data\bp1\DAMENG\dm.ini dpc_mode=BP
./dmserver d:\data\dmdata\dpc_data\bp2\DAMENG\dm.ini dpc_mode=BP使用 exit 命令退出 DMDPC 需要按照正确的顺序有序进行。
如果没有按正常顺序退出,可能会导致剩下的机器直接宕机。此时,只能对其他的机器采用强杀。这种服务器异常退出的情况,当再次重启的时候,服务器需要做大量的REDO日志,因此重启的时间会稍长一些,其它没有影响。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




