暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DPC单副本部署-win部署

原创 得一阳阳 2025-05-07
210

一个最小的 DMDPC 集群包含一个 BP、一个 SP 和一个 MP。可以在部署完毕后随时增添新的 BP、SP 节点。至少需要两台 BP 才方便看出子任务的各种计划形态和调度。

基本概念:

SP:计算节点,对外响应数据库请求,生成并调度计划

MP:元数据节点,提供元数据服务。

BP:数据节点,存储实际的数据,接收并执行发来的子计划。

容错域:多个 MP、BP 节点在同一个物理区域内的集合,也就是机房、城市、地区等,一个物理区域发生灾难故障,其他区域进行接管。

BS模式:属于BP节点一种启动模式,常规BP模式仅作为后台数据存储节点,不可以进行数据交互。BS模式同时具有BP和SP的功能,如果查询或修改的数据都在直连的 BP 本地,则类似于单节点,执行时无网络交互的代价。

IP 和端口分配如下表所示,仅用作示例,需按实际 IP 进行设置。MP、BP 采用单机模式,未配置为多副本系统。

raft组名

角色

实例名

IP

端口

ap_port_num

路径

RAFT_SP1

SP

SP1

localhost

5237

6000

d:\data\dmdata\dpc_data\sp1

MP_RAFT

MP

MP

localhost

5238

6001

d:\data\dmdata\dpc_data\mp1

RAFT_1

BP

BP1

localhost

5240

6002

d:\data\dmdata\dpc_data\bp1

RAFT_2

BP

BP2

localhost

5241

6003

d:\data\dmdata\dpc_data\bp2

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=BP


配置 MP.INI 文件

sp、mp、bp的所有节点都需要配置以下内容:

mp_host = localhost

mp_port = 9000 #与MP、BP和SP上的ap_port_num不冲突的端口号


启动MP,注意SP、BP都不可以启动

./dmserver d:\data\dmdata\dpc_data\mp\DAMENG\dm.ini dpc_mode=MP


将 MP、SP 和 BP 加入集群

登录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.


启动SP和BP

./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


退出 DMDPC

使用 exit 命令退出 DMDPC 需要按照正确的顺序有序进行。

第一步 退出 SP;

第二步 退出 BP;

第三步 退出 MP。

如果没有按正常顺序退出,可能会导致剩下的机器直接宕机。此时,只能对其他的机器采用强杀。这种服务器异常退出的情况,当再次重启的时候,服务器需要做大量的REDO日志,因此重启的时间会稍长一些,其它没有影响。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论