注册
dm8分布式集群DPC搭建-以单副本架构和MP多副本架构为例
技术分享/ 文章详情 /

dm8分布式集群DPC搭建-以单副本架构和MP多副本架构为例

。。 2025/11/07 145 0 0

一、环境准备

1.1分配规划

RAFT组名 角色 实例名称 IP PORT_NUM AP_PORT_NUM
RAFT_SP1 SP SP1 192.168.4.23 5236 6000
RAFT_1 BP BP1 192.168.4.23 5237 6001
RAFT_2 BP BP2 192.168.4.23 5238 6002
缺省,NULL或MP_RAFT MP MP1 192.168.4.23 5239 6003

二、命令行搭建过程

2.1 数据实例初始化

分别初始化4个实例

# SP1
./dminit path=/home/dmdba/data/SP01/ instance_name=SP1 port_num=5236 ap_port_num=6000 dpc_mode=SP SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025
# BP1
./dminit path=/home/dmdba/data/BP01/ instance_name=BP1 port_num=5237 ap_port_num=6001 dpc_mode=BP SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025
# BP2
./dminit path=/home/dmdba/data/BP02/ instance_name=BP2 port_num=5238 ap_port_num=6002 dpc_mode=BP SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025
# MP1
./dminit path=/home/dmdba/data/MP01/  instance_name=MP port_num=5239 ap_port_num=6003 dpc_mode=MP SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025

2.2 为SP、BP、MP分别配置mp.ini

mp.ini的文件路径与dm.ini一致,以SP为例,一般为/home/dmdba/data/SP01/DAMENG/mp.ini,mp.ini内容如下:

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

2.3 启动MP

DMDPC启动过程中,MP需要保持开启状态

./dmserver /home/dmdba/data/MP01/DAMENG/dm.ini dpc_mode=MP

2.4 将MP、SP、BP加入集群

只有在注册当前登录MP节点后,才可以注册其余节点。后续增加MP、SP节点和BP节点无先后之分。现在需要先用MP登录Disql

./disql SYSDBA/'"Dmglydmm@2025"'@127.0.0.1:5239

登陆后先注册MP节点,然后注册其余节点

//增加MP节点 
//注册当前MP实例,MP的RAFT组名可以指定为NULL或者'MP_RAFT' 
SP_CREATE_DPC_INSTANCE(NULL,'MP','MP',6003,5239, '192.168.4.23', '192.168.4.23','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',6001,5237, '192.168.4.23', '192.168.4.23','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',6002,5238, '192.168.4.23', '192.168.4.23', '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,5236, '192.168.4.23', '192.168.4.23','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'); 

2.5 检查注册是否成功

不需要关闭刚才的disql终端,执行以下命令查询注册结果

SQL>select * from DPC_BP_GROUP; 
SQL>select * from DPC_BP_RAFT; 
SQL>select * from DPC_INSTANCE; 

2.6 启动SP和BP

启动SP和BP没有先后之分

./dmserver /home/dmdba/data/SP01/DAMENG/dm.ini dpc_mode=SP
./dmserver /home/dmdba/data/BP01/DAMENG/dm.ini dpc_mode=BP
./dmserver /home/dmdba/data/BP02/DAMENG/dm.ini dpc_mode=BP

2.7 连接SP

DMDPC 搭建完成后,用户只需要连接对外提供服务的 SP,即可获得完整的数据库服务。
验证环境搭建是否成功,可以在SP上执行查询V$instance,看是否所有RAFT组中实例都能够查到。

SQL> select * from V$instance;

2.8 退出DMDPC

使用exit命令退出DMDPC需要按照正确的顺序有序进行。
第一步 退出SP;
第二步 退出BP;
第三步 退出MP。

三、DEM搭建DPC集群过程

3.1 配置dmagnet

  1. 获取dmagent
    可以在dem的资源包处获取下载或者在主机中安装dm8获得。dmagent相关文件安装dm8后一般在安装目录下的tool/dmagent
    dmagent.png
  2. 修改dmagent配置
    配置dmagent目录下的agent.ini
    center_url=http://192.168.4.8:8080/dem   #DEM地址 
    ip_list     = [192.168.4.23]    #dmagent所在服务器的地址
    gather_enable=true             #开启收集监控数据功能,默认打开 
    service_enable=true       #开启远程调用功能,部署时需要打开,
    
  3. 核对dmagent和DEM所运行机器时间
    一般要求dmagent和DEM所运行机器时间一致,最多不要相差M分钟,M取5分
    钟和主机失效时间两者中的最小值。(具体说明可以参考DEM.pdf)
  4. 生成并安装service.key
    Windows 环境中:
    start.bat  INSTALL_SERVICE_KEY  999999  #此处的999999为指定的key,999999为默认值 
    
    Linux 环境中:
    ./start.sh  INSTALL_SERVICE_KEY  999999  #此处的999999为指定的key,999999为默认值 
    
  5. 启动dmagent
    Linux:./start.sh –d  /安装路径/agent.ini
    Windows:start.bat –d  agent.ini
    
  6. 脚本注册与服务启动(选做):
     #注册服务
     [root@localhost dmagent]# ./service.sh install
     input agent home [/home/dmdba/dm/dmdbms/tool/dmagent] :
     input agent.ini path [/home/dmdba/dm/dmdbms/tool/dmagent/agent.ini] :
     input service user [dmdba] :root
     installation the service DmAgentService completed.
     #以服务的方式启动 dmagent
     [root@localhost dmagent]# cd service/
     [root@localhost service]# ./DmAgentService start
     Starting dmagentStarting dmagent.....
     dmagent(pid: 28641) started successfully.
     SUCCESS!
    

3.2 按照流程开始配置DPC分布式集群

在DEM的左侧边栏,选择“集群部署”工具,打开新建集群部署的对话框,如下图:
1.png
然后选择需要搭建集群的主机,这里以单副本为例,选择主机192.168.4.23
2.png
为实例进行规划,点击添加实例按钮分别配置sp、mp和bp
3.png
点击下一步后点击添加BP组按钮按照规划配置BP组
4.png
按需配置地域、数据中心和容错域,需要将实例移动至容错域下
5.png
按需添加租户和用户,将对应RAFT组移动至对应租户下
6.png
初始化参数配置
7.png
配置dm.ini,检查是否与此前的实例规划相同
8.png
配置dmarch.ini
9.png
上传服务器文件。由于在主机192.168.4.23中已经安装了dm8,所以执行码目录需要更改为dmserver所在的位置
10.png
检查配置信息是否有误,无误则点击保存并执行
11.png
开始执行后会出现相应需要完成的任务
12.png
到此DPC集群基本搭建完毕
13.png

3.3 DEM监控DPC集群

在完成DPC集群的搭建后点击添加到监控按钮
14.png
现在可以在dem监控模块看到对应的集群,对集群的监控与管理操作包括启动/停止集群,负载分析等
15.png

四、多副本架构-以MP多副本为例

4.1分配规划

RAFT组名 角色 实例名称 IP PORT_NUM AP_PORT_NUM
RAFT_SP1 SP SP1 192.168.4.23 5236 6000
RAFT_1 BP BP1 192.168.4.23 5336 6100
缺省,NULL或MP_RAFT MP MP1 192.168.4.23 5436 6200
缺省,NULL或MP_RAFT MP MP2 192.168.4.23 5437 6201
缺省,NULL或MP_RAFT MP MP3 192.168.4.23 5438 6202

备注:在搭建之前注意需要为主机预留充足的存储空间,建议45GB以上

4.2 初始化数据库实例

# SP1
./dminit path=/home/dmdba/data/SP01/ instance_name=SP1 port_num=5236 ap_port_num=6000 dpc_mode=SP AUTO_OVERWRITE=1 SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025
# BP1
./dminit path=/home/dmdba/data/BP01/ instance_name=BP1 port_num=5336 ap_port_num=6100 dpc_mode=BP AUTO_OVERWRITE=1 SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025
# MP1
./dminit path=/home/dmdba/data/MP01/  instance_name=MP1 port_num=5436 ap_port_num=6200 dpc_mode=MP AUTO_OVERWRITE=1 SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025
# MP2
./dminit path=/home/dmdba/data/MP02/  instance_name=MP2 port_num=5437 ap_port_num=6201 dpc_mode=MP AUTO_OVERWRITE=1 SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025
# MP3
./dminit path=/home/dmdba/data/MP03/  instance_name=MP3 port_num=5438 ap_port_num=6202 dpc_mode=MP AUTO_OVERWRITE=1 SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025

4.2 为SP、BP、MP分别配置mp.ini

mp.ini的文件路径与dm.ini一致,以SP为例,一般为/home/dmdba/data/SP01/DAMENG/mp.ini,mp.ini内容如下:

# mp_port端口号必须与MP、BP和SP上的ap_port_num端口号不冲突 
[MP1] 
mp_host = 192.168.4.23 
mp_port = 10622 
[MP2] 
mp_host = 192.168.4.23 
mp_port = 10623 
[MP3] 
mp_host = 192.168.4.23 
mp_port = 10624

4.3 配置并启动MP1

  1. 配置MP1本地归档dmarch.ini
[ARCHIVE_LOCAL1] 
ARCH_TYPE   = LOCAL                            #本地归档类型 
ARCH_DEST   = /home/dmdba/data/MP01/DAMENG/arch   #本地归档文件路径 
ARCH_FILE_SIZE  = 128                              #本地单个归档文件最大值,单位MB 
ARCH_SPACE_LIMIT = 0                                #本地归档文件总大小,0表示无限制 
  1. 配置MP1的dm.ini
ARCH_INI = 1
  1. 启动MP1
./dmserver /home/dmdba/data/MP01/DAMENG/dm.ini dpc_mode=MP

4.4 将MP、BP、SP加入集群

登录MP1

./disql SYSDBA/'"Dmglydmm@2025"'@127.0.0.1:5436

增加3个MP、1个SP和1个BP节点。只有在注册当前登录MP节点后,才可以注册其余节点。后续增加MP、SP节点和BP节点无先后之分。

# 增加MP节点 
# 注册当前MP实例,MP的RAFT组名可以指定为'MP_RAFT'或缺省NULL 
SP_CREATE_DPC_INSTANCE(NULL, 'MP1', 'MP', 6200, 5436, '192.168.4.23','', 'STANDBY', 0, 'MP instance'); 
SP_CREATE_DPC_INSTANCE(NULL, 'MP2', 'MP', 6201, 5437, '192.168.4.23', '','STANDBY', 0, 'MP instance'); 
SP_CREATE_DPC_INSTANCE(NULL,'MP3','MP', 6202, 5438, '192.168.4.23', '', 'STANDBY', 0, 'MP instance'); 
 
# 增加BP节点 
# 注册RAFT组,名为BPRAFT_1 
SP_CREATE_DPC_RAFT('BP', 'BPRAFT_1'); 
# 在BPRAFT_1组内注册BP实例BP1
SP_CREATE_DPC_INSTANCE('BPRAFT_1', 'BP1', 'BP', 6100, 5336, '192.168.4.23', '','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', 'BPRAFT_1'); 
 
# 增加SP节点 
# 增加SP,也要注册RAFT组 
SP_CREATE_DPC_RAFT('SP', 'SPRAFT_1'); 
# 在SPRAFT_1内注册SP实例SP1 
SP_CREATE_DPC_INSTANCE('SPRAFT_1', 'SP1', 'SP', 6000, 5236, '192.168.4.23', '','NORMAL', 1, 'SP instance'); 
 
# 注册三个容错域:FDOM_1 FDOM_2 FDOM_3 
SP_CREATE_FAULT_DOMAIN ('FDOM_1', 'shanghai_1'); 
SP_CREATE_FAULT_DOMAIN ('FDOM_2', 'shanghai_2'); 
SP_CREATE_FAULT_DOMAIN ('FDOM_3', 'shanghai_3'); 
 
# 往容错域中添加实例 
SP_FAULT_DOMAIN_MV_INST('FDOM_1', 'MP1'); 
SP_FAULT_DOMAIN_MV_INST('FDOM_1', 'BP1'); 
SP_FAULT_DOMAIN_MV_INST('FDOM_2', 'MP2'); 
SP_FAULT_DOMAIN_MV_INST('FDOM_3', 'MP3'); 

4.5 检查注册是否成功

SQL>select * from DPC_BP_GROUP; 
SQL>select * from DPC_BP_RAFT; 
SQL>select * from DPC_INSTANCE; 

4.6 准备MP RAFT组内数据

  1. 退出MP1并进行脱机备份
./dmrman CTLSTMT="BACKUP DATABASE '/home/dmdba/data/MP01/DAMENG/dm.ini' FULL TO BACKUP_01 BACKUPSET '/home/dmdba/data/MP01/DAMENG/dmbak/BACKUP_01'" USE_AP=2 
  1. 将MP1的备份文件脱机还原到MP2及MP3
    将MP1的备份文件BACKUP_01脱机还原到MP2及MP3。这里无需启动MP2和MP3,如果需要启动也应该是以MOUNT方式启动,防止MP2、MP3生成日志引发三个节点日志内容不匹配。
//还原到MP2 
./dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/data/MP02/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/data/MP01/DAMENG/dmbak/BACKUP_01'" USE_AP=2 
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/data/MP02/DAMENG/dm.ini' UPDATE DB_MAGIC" USE_AP=2 
//还原到MP3 
./dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/data/MP03/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/data/MP01/DAMENG/dmbak/BACKUP_01'" USE_AP=2 
./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/data/MP03/DAMENG/dm.ini' UPDATE 
DB_MAGIC" USE_AP=2 
  1. 配置MP dm.ini
    MP的RAFT组各实例(MP1、MP2、MP3)中dm.ini文件的配置方法完全相同。
ARCH_INI                = 1        #打开归档配置 
ALTER_MODE_STATUS     = 0        #不允许用户直接通过SQL语句修改服务器模式 
  1. 配置MP RAFT归档文件
    修改DMARCH.INI,配置RAFT归档与本地归档。
    除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是Primary模式时,需要同步归档数据的目标实例名。
    MP1
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                 = /home/dmdba/data/MP01/DAMENG/arch    #本地归档文件路径 
ARCH_FILE_SIZE          = 128                #本地单个归档文件最大值,单位MB 
ARCH_SPACE_LIMIT         = 0                #本地归档文件总大小,0表示无限制 

MP2

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                 = /home/dmdba/data/MP02/DAMENG/arch    #本地归档文件路径
ARCH_FILE_SIZE           = 128                #本地单个归档文件最大值,单位MB 
ARCH_SPACE_LIMIT         = 0                #本地归档文件总大小,0表示无限制

MP3

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                 = /home/dmdba/data/MP03/DAMENG/arch    #本地归档文件路径 
ARCH_FILE_SIZE           = 128                #本地单个归档文件最大值,单位MB 
ARCH_SPACE_LIMIT         = 0                #本地归档文件总大小,0表示无限制 

4.7 启动全部MP

./dmserver /home/dmdba/data/MP01/DAMENG/dm.ini dpc_mode=MP MOUNT
./dmserver /home/dmdba/data/MP02/DAMENG/dm.ini dpc_mode=MP MOUNT
./dmserver /home/dmdba/data/MP03/DAMENG/dm.ini dpc_mode=MP MOUNT

4.8 启动BP、SP

BP、SP启动没有先后之分

./dmserver /home/dmdba/data/SP01/DAMENG/dm.ini dpc_mode=SP
./dmserver /home/dmdba/data/BP01/DAMENG/dm.ini dpc_mode=BP

4.9 连接SP

DMDPC 搭建完成后,用户只需要连接对外提供服务的 SP,即可获得完整的数据库服务。
验证环境搭建是否成功,可以在SP上执行查询V$instance,看是否所有RAFT组中实例都能够查到。

SQL> select * from V$instance;

4.10 退出DMDPC

使用exit命令退出DMDPC需要按照正确的顺序有序进行。
第一步 退出SP;
第二步 退出BP;
第三步 退出MP。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服