命令行部署dpc单副本架构

一个最小的 DMDPC 集群包含一个 SP 、一个 BP和一个 MP。其中MP有且仅有1个,部署完毕后可随时增添新的 SP 、BP节点。至少需要两台 BP 才方便看出子任务的各种计划形态和调度。 目前支持借助命令行工具部署和DEM图形化界面方式部署两种方式。

本文在命令行方式下,在单台虚拟机上,部署 2个BP+1个SP+1个MP 的dpc单副本架构。
没有配置主备,2个BP用于提供分布式的功能,每个RAFT组都只有1个主节点。

1,前期准备

参考http://t.csdnimg.cn/k16E2

  1. 关闭防火墙
  2. 修改系统资源
  3. 设置网络信息,IP地址:192.168.37.100
  4. 创建安装用户和安装路径
  5. 安装dm8,安装路径为 /home/dmdba/dpc

2,创建实例

在/home/dmdba/dpc目录下创建4个实例,未指定DB_NAME库名默认为DAMENG
注意端口号不能重复

raft组名实例名port_numap_port_num路径
raft_sp1SP151016101/home/dmdba/dpc/sp1
raft_bp1BP152016201/home/dmdba/dpc/bp1
raft_bp2BP252026202/home/dmdba/dpc/bp2
mp_raftMP53016301/home/dmdba/dpc/mp
cd /home/dmdba/dpc/bin
./dminit path=/home/dmdba/dpc/sp1 instance_name=SP1 port_num=5101 ap_port_num=6101 dpc_mode=SP
./dminit path=/home/dmdba/dpc/bp1 instance_name=BP1 port_num=5201 ap_port_num=6201 dpc_mode=BP
./dminit path=/home/dmdba/dpc/bp2 instance_name=BP2 port_num=5202 ap_port_num=6202 dpc_mode=BP
./dminit path=/home/dmdba/dpc/mp instance_name=MP port_num=5301 ap_port_num=6301 dpc_mode=MP

3,编辑配置文件

MP 为 DPC 集群中提供元数据服务(即字典信息服务)的节点,所有 DDL 请求都会经过 SP 转发给 MP 执行。相当于MP节点与其他节点构成一个服务器-客户端架构,mp.ini文件用于访问MP服务器,其中mp_host是MP节点的IP,mp_port是MP节点用于字典信息服务的端口号。

在4个实例对应的目录创建mp.ini文件,内容相同。

vi /home/dmdba/dpc/xxx/DAMENG/mp.ini

# mp.ini
mp_host = 192.168.37.100        # MP所在ip
mp_port = 9000                  # 端口号

4,启动MP节点服务器

启动MP节点的dmserver服务器,并在接下来的配置过程中始终保持开启状态

cd /home/dmdba/dpc
bin/dmserver mp/DAMENG/dm.ini dpc_mode=MP

5,添加节点到集群

需要先登录MP节点,然后在disql中添加当前登录 MP 节点后,才可以添加其余节点
将 SP 和 BP 节点加入 DPC 集群的步骤必须在 SP、BP 第一次启动前完成
后续添加 MP、SP 节点和 BP 节点无先后之分

5.1,登录MP

disql登录MP节点,注意检查端口号

cd /home/dmdba/dpc/bin
./disql SYSDBA/SYSDBA@192.168.37.100:5301

5.2,添加MP节点

创建dpc集群节点的函数

# 参数说明
SP_CREATE_DPC_INSTANCE (
    RAFT_NAME     VARCHAR(128),    # RAFT组名称
    NAME          VARCHAR(128),    # 实例名称
    DPC_MODE      VARCHAR(8),      # 注册的实例类型,取值:BP、SP或MP
    AP_PORT       INT,             # AP_PORT 端口号
    INST_PORT     INT,             # 实例服务 端口号
    IP_INTER      VARCHAR(256),    # 内网IP地址
    IP_EXTER      VARCHAR(256),    # 外网IP地址,空表示内外网地址相同
    SYS MODE      VARCHAR(32),     # 主备模式,取值: NORMAL,PRIMARY,STANDBY
    STATUS        INT,             # 实例状态,1:有效;0:无效;2:表示SP为正常退出状态,可动态删除此SP实例
    DESC          VARCHAR(256)     # 描述信息
)

在disql中添加当前登录的MP节点,MP的RAFT组名只能为'MP_RAFT',默认值也是。

SP_CREATE_DPC_INSTANCE('MP_RAFT','MP','MP',6301,5301, '192.168.37.100','192.168.37.100','NORMAL',1,'MP instance');

5.3,创建raft组并添加节点

拥有相同数据的一个或多个节点共同构成一个 RAFT 组。RAFT 组中的节点个数为奇数。
当 RAFT 组中含有三个或三个以上节点时,RAFT 组中的所有节点共同构成一个多副本系统。
当 RAFT 组中只有 1 个节点时,则该节点称为单副本系统。

创建raft组的函数

# 参数说明
SP_CREATE_DPC_RAFT(
    DPC_MODE     VARCHAR(8),      # RAFT组类型,取值:BP或SP。SP类型最多加入一个SP节点
    RAFT_NAME    VARCHAR(128)     # RAFT组名称
)

创建BP类型raft组,组名为raft_bp1,向其中添加BP1节点
注意先ap_port,后inst_port,我这里写反了

SP_CREATE_DPC_RAFT('BP','raft_bp1');
SP_CREATE_DPC_INSTANCE('raft_bp1','BP1','BP',5201,6201, '192.168.37.100', '192.168.37.100','NORMAL',1,'BP instance');

创建BP类型raft组,组名为raft_bp2,向其中添加BP2节点
注意先ap_port,后inst_port,我这里写反了

SP_CREATE_DPC_RAFT('BP','raft_bp2');
SP_CREATE_DPC_INSTANCE('raft_bp2','BP2','BP',5202,6202, '192.168.37.100', '192.168.37.100','NORMAL',1,'BP instance');

创建SP类型raft组,组名为raft_sp1,向其中添加SP1节点,注意status为2
注意先ap_port,后inst_port,我这里写反了

SP_CREATE_DPC_RAFT('SP','raft_sp1');
SP_CREATE_DPC_INSTANCE('raft_sp1','SP1','SP',5101,6101, '192.168.37.100', '192.168.37.100','NORMAL',2,'SP instance');

5.4,创建BP组并添加raft组

创建 BP 组的函数。BP 组是个逻辑概念,组内的所有BP节点共同实现分布式,一个子表的数据只能属于一个 BP节点,一个 BP节点可以管理多个子表。

SP_CREATE_DPC_BP_GROUP(
    GROUP_NAME   VARCHAR(128),    # BP 组名称
    DESC         VARCHAR(256)     # 描述信息
)

向BP组中添加raft组的函数。一个 BP 组由一个或多个 BP RAFT 实例组成。不同 BP 组所包含的 RAFT 组互不相关。

SP_BP_GROUP_ADD_RAFT(
    BP_GROUP_NAME     VARCHAR(128),    # BP 组名
    RAFT_NAME         VARCHAR(128)     # 待添加的 RAFT 组名
)

创建一个BP组,组名为BG_1,并添加BP类型raft组

SP_CREATE_DPC_BP_GROUP('BG_1', 'bp group1');
SP_BP_GROUP_ADD_RAFT('BG_1', 'raft_bp1');
SP_BP_GROUP_ADD_RAFT('BG_1', 'raft_bp2');

6,启动SP、BP节点服务器

启动所有的SP和BP节点服务器,顺序随意

cd /home/dmdba/dpc/bin
./dmserver /home/dmdba/dpc/bp1/DAMENG/dm.ini dpc_mode=BP
./dmserver /home/dmdba/dpc/bp2/DAMENG/dm.ini dpc_mode=BP
./dmserver /home/dmdba/dpc/sp1/DAMENG/dm.ini dpc_mode=SP

启动BP1节点

启动BP2节点

启动SP1节点

7,客户端连接SP节点

disql登录对外提供服务的 SP节点

查看当前dpc集群信息

select * from v$instance;
select * from V$dm_ini where para_name='DPC_MODE' and sf_get_ep_seqno(rowid)=SF_GET_SELF_EP_SEQNO;

8,关闭集群

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

退出 SP -> 退出 BP -> 退出 MP

必须按照顺序 exit 退出,否则可能引起宕机

9,补充

AP_PORT:可为空串,表示不修改。SP/BP本地设置的AP_PORT_NUM如果和自身在MP上注册的AP_PORT_NUM不一致,按照在MP上实际注册的为准,启动时会自动覆盖;

INST_PORT:实例端口号,可为空串,表示不修改。SP/BP本地设置的PORT_NUM如果和自身在MP上注册的PORT_NUM不一致,按照在MP上实际注册的为准,启动时会自动覆盖。

本文在部署过程中,创建BP raft组和SP raft组时,比如前者应该是ap_port规划的是6101,后者是inst_port规划的是5101,但不小心把两个端口号写反了。。。

但是发现并不影响集群启动。后面登录SP节点的时候,需要使用覆盖后的6101才能登录成功。

社区地址:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值