| 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 |
分别初始化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
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不冲突的端口号
DMDPC启动过程中,MP需要保持开启状态
./dmserver /home/dmdba/data/MP01/DAMENG/dm.ini dpc_mode=MP
只有在注册当前登录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');
不需要关闭刚才的disql终端,执行以下命令查询注册结果
SQL>select * from DPC_BP_GROUP;
SQL>select * from DPC_BP_RAFT;
SQL>select * from DPC_INSTANCE;
启动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
DMDPC 搭建完成后,用户只需要连接对外提供服务的 SP,即可获得完整的数据库服务。
验证环境搭建是否成功,可以在SP上执行查询V$instance,看是否所有RAFT组中实例都能够查到。
SQL> select * from V$instance;
使用exit命令退出DMDPC需要按照正确的顺序有序进行。
第一步 退出SP;
第二步 退出BP;
第三步 退出MP。
tool/dmagent中center_url=http://192.168.4.8:8080/dem #DEM地址
ip_list = [192.168.4.23] #dmagent所在服务器的地址
gather_enable=true #开启收集监控数据功能,默认打开
service_enable=true #开启远程调用功能,部署时需要打开,
start.bat INSTALL_SERVICE_KEY 999999 #此处的999999为指定的key,999999为默认值
Linux 环境中:./start.sh INSTALL_SERVICE_KEY 999999 #此处的999999为指定的key,999999为默认值
Linux:./start.sh –d /安装路径/agent.ini
Windows:start.bat –d agent.ini
#注册服务
[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!
在DEM的左侧边栏,选择“集群部署”工具,打开新建集群部署的对话框,如下图:
然后选择需要搭建集群的主机,这里以单副本为例,选择主机192.168.4.23
为实例进行规划,点击添加实例按钮分别配置sp、mp和bp
点击下一步后点击添加BP组按钮按照规划配置BP组
按需配置地域、数据中心和容错域,需要将实例移动至容错域下
按需添加租户和用户,将对应RAFT组移动至对应租户下
初始化参数配置
配置dm.ini,检查是否与此前的实例规划相同
配置dmarch.ini
上传服务器文件。由于在主机192.168.4.23中已经安装了dm8,所以执行码目录需要更改为dmserver所在的位置
检查配置信息是否有误,无误则点击保存并执行
开始执行后会出现相应需要完成的任务
到此DPC集群基本搭建完毕
在完成DPC集群的搭建后点击添加到监控按钮
现在可以在dem监控模块看到对应的集群,对集群的监控与管理操作包括启动/停止集群,负载分析等
| 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以上
# 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
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
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /home/dmdba/data/MP01/DAMENG/arch #本地归档文件路径
ARCH_FILE_SIZE = 128 #本地单个归档文件最大值,单位MB
ARCH_SPACE_LIMIT = 0 #本地归档文件总大小,0表示无限制
ARCH_INI = 1
./dmserver /home/dmdba/data/MP01/DAMENG/dm.ini dpc_mode=MP
登录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');
SQL>select * from DPC_BP_GROUP;
SQL>select * from DPC_BP_RAFT;
SQL>select * from DPC_INSTANCE;
./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
//还原到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
ARCH_INI = 1 #打开归档配置
ALTER_MODE_STATUS = 0 #不允许用户直接通过SQL语句修改服务器模式
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表示无限制
./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
BP、SP启动没有先后之分
./dmserver /home/dmdba/data/SP01/DAMENG/dm.ini dpc_mode=SP
./dmserver /home/dmdba/data/BP01/DAMENG/dm.ini dpc_mode=BP
DMDPC 搭建完成后,用户只需要连接对外提供服务的 SP,即可获得完整的数据库服务。
验证环境搭建是否成功,可以在SP上执行查询V$instance,看是否所有RAFT组中实例都能够查到。
SQL> select * from V$instance;
使用exit命令退出DMDPC需要按照正确的顺序有序进行。
第一步 退出SP;
第二步 退出BP;
第三步 退出MP。
文章
阅读量
获赞
