环境:
OS:Centos 7
DM:DMV8
达梦分布计算集群英文全称 DM Distributed Processing Cluster,简称 DMDPC.
计划生成节点,英文全称为 SQL Processor,简称为SP;
数据存储节点,英文全称为 Backend Processor,简称为BP;
元数据服务器节点,英文全称为 Metadata Processor,简称为 MP.
一个最小的 DMDPC 集群包含一个 BP、一个 SP 和一个 MP.
可以在部署完毕后随时增添新的 BP、SP 节点。至少需要两台 BP 才方便看出子任务的各种计划形态和调度,
本试验将在一部 Linux 虚拟机上通过创建四个实例的方式进行集群搭建.
DMDPC 集群规划部署 1 个 SP,2 个 BP 和 1 个 MP,其中,BP 采用单机模式,未配置为多副本系统,
RAFT组名 实例名称 IP PORT_NUM AP_PORT_NUM 路径 RAFT_SP1 SP1 192.168.56.103 5236 6000 /dmdbms/data/sp1 RAFT_1 BP1 192.168.56.103 5237 6001 /dmdbms/data/bp1 RAFT_2 BP2 192.168.56.103 5238 6002 /dmdbms/data/bp2 缺省为 NULL 或者MP_RAFT MP 192.168.56.103 5239 6003 /dmdbms/data/mp
1.安装达梦数据库软件
确保DMap已经在运行
[root@localhost /]# systemctl status DmAPService.service
2.初始化数据库实例
su - dmdba dminit path=/dmdbms/data/sp1 instance_name=SP1 port_num=5236 ap_port_num=6000 dpc_mode=SP dminit path=/dmdbms/data/bp1 instance_name=BP1 port_num=5237 ap_port_num=6001 dpc_mode=BP dminit path=/dmdbms/data/bp2 instance_name=BP2 port_num=5238 ap_port_num=6002 dpc_mode=BP dminit path=/dmdbms/data/mp instance_name=MP port_num=5239 ap_port_num=6003 dpc_mode=MP 初始化后的目录: [dmdba@localhost data]$ ls bp1 bp2 mp sp1 [dmdba@localhost data]$ pwd /dmdbms/data 每个目录下都要DAMENG这个目录 [dmdba@localhost DAMENG]$ pwd /dmdbms/data/bp1/DAMENG [dmdba@localhost DAMENG]$ pwd /dmdbms/data/bp2/DAMENG [dmdba@localhost DAMENG]$ pwd /dmdbms/data/mp/DAMENG [dmdba@localhost DAMENG]$ pwd /dmdbms/data/sp1/DAMENG
3.在四个实例的 DAMENG 目录下配置 mp.ini 文件
vi /dmdbms/data/bp1/DAMENG/mp.ini mp_host = 192.168.56.103 mp_port = 9000 #与MP、BP和SP上的ap_port_num不冲突的端口号 vi /dmdbms/data/bp2/DAMENG/mp.ini mp_host = 192.168.56.103 mp_port = 9000 #与MP、BP和SP上的ap_port_num不冲突的端口号 vi /dmdbms/data/mp/DAMENG/mp.ini mp_host = 192.168.56.103 mp_port = 9000 #与MP、BP和SP上的ap_port_num不冲突的端口号 vi /dmdbms/data/sp1/DAMENG/mp.ini mp_host = 192.168.56.103 mp_port = 9000 #与MP、BP和SP上的ap_port_num不冲突的端口号
4.启动 MP
DMDPC 运行过程中,MP 需要始终处于开启状态
su - dmdba
cd /dmdbms/product/bin
./dmserver /dmdbms/data/mp/DAMENG/dm.ini dpc_mode=MP
5.将MP、SP和BP 加入集群
增加 1 个 MP、1 个 SP 和 2 个 BP 节点,只有在注册当前登录 MP 节点后,才可以注册其余节点。后续增加 MP、SP 节点和 BP 节点无先后之分. //搭建DMDPC过程中加入MP、SP和BP,必须登录MP进行操作 disql SYSDBA/[email protected]:5239 //增加MP节点 //注册当前MP实例,MP的RAFT组名可以指定为NULL或者'MP_RAFT' SP_CREATE_DPC_INSTANCE(NULL,'MP','MP',6003,5239, '192.168.56.103', '192.168.56.103','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.56.103', '192.168.56.103','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.56.103', '192.168.56.103', '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.56.103', '192.168.56.103','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');
注意:将SP和BP节点加入DMDPC集群中的步骤必须在SP、BP第一次启动前完成
6.检查注册是否成功
查询系统表,检查上一步骤的注册是否成功,能查到相关信息表示注册成功
SQL> select * from DPC_BP_GROUP; LINEID ID NAME DESCRIPTION RAFT_NUM RAFT_INFO INFO1 INFO2 INFO3 ---------- ----------- ---- ----------- ----------- ---------- ----------- -------------------- ---------- 1 0 BG_1 bp group1 2 0x01000200 0 NULL NULL used time: 0.591(ms). Execute id is 67715. SQL> select * from DPC_BP_RAFT; LINEID 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 used time: 1.130(ms). Execute id is 67716. SQL> select * from DPC_INSTANCE; LINEID 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 6003 5239 192.168.56.103 NORMAL 4 1 MP instance 192.168.56.103 65536 NULL NULL 2 1 4097 BP1 BP 6001 5237 192.168.56.103 NORMAL 6 1 BP instance 192.168.56.103 65536 NULL NULL 3 2 4098 BP2 BP 6002 5238 192.168.56.103 NORMAL 6 1 BP instance 192.168.56.103 65536 NULL NULL LINEID RAFT_ID INST_ID NAME DPC_MODE XMAL_PORT INST_PORT IP_INTERNAL SYS_MODE SYS_STATUS STATUS ---------- ----------- ----------- ---- -------- ----------- ----------- -------------- -------- ----------- ----------- DESCRIPTION IP_EXTERNAL INFO1 INFO2 INFO3 ----------- -------------- ----------- -------------------- ---------- 4 3 4099 SP1 SP 6000 5236 192.168.56.103 NORMAL 6 2 SP instance 192.168.56.103 NULL NULL NULL used time: 0.590(ms). Execute id is 67717.
7.启动 SP 和 BP
启动 SP 和 BP 没有先后之分
启动 SP
su - dmdba
cd /dmdbms/product/bin
./dmserver /dmdbms/data/sp1/DAMENG/dm.ini dpc_mode=SP
启动 BP
su - dmdba
cd /dmdbms/product/bin
./dmserver /dmdbms/data/bp1/DAMENG/dm.ini dpc_mode=BP
./dmserver /dmdbms/data/bp2/DAMENG/dm.ini dpc_mode=BP
cd /dmdbms/product/bin
./dmserver /dmdbms/data/bp2/DAMENG/dm.ini dpc_mode=BP
至此 DMDPC 集群搭建完毕,用户只需要连接对外提供服务的 SP,即可获得完整的数据库服务
8.登录使用
用户只需要连接对外提供服务的SP,即可获得完整的数据库服务
disql SYSDBA/[email protected]:5236 SQL> select name from v$database; LINEID NAME ---------- ------ 1 DAMENG 2 DAMENG 3 DAMENG used time: 9.485(ms). Execute id is 12583013. SQL> SQL> select name from v$instance; LINEID NAME ---------- ---- 1 SP1 2 BP1 3 BP2 4 MP used time: 4.804(ms). Execute id is 12583014. SQL> SQL> select path from v$datafile; LINEID PATH ---------- ---------------------------------- 1 /dmdbms/data/sp1/DAMENG/TEMP.DBF 2 /dmdbms/data/mp/DAMENG/MAIN.DBF 3 /dmdbms/data/mp/DAMENG/ROLL.DBF 4 /dmdbms/data/mp/DAMENG/TEMP.DBF 5 /dmdbms/data/mp/DAMENG/SYSTEM.DBF 6 /dmdbms/data/bp1/DAMENG/SYSTEM.DBF 7 /dmdbms/data/bp1/DAMENG/ROLL.DBF 8 /dmdbms/data/bp1/DAMENG/TEMP.DBF 9 /dmdbms/data/bp2/DAMENG/SYSTEM.DBF 10 /dmdbms/data/bp2/DAMENG/ROLL.DBF 11 /dmdbms/data/bp2/DAMENG/TEMP.DBF SQL> select arch_mode from v$database; LINEID ARCH_MODE ---------- --------- 1 N 2 N 3 N used time: 3.540(ms). Execute id is 12583017.
9.创建表空间和用户(好像不是这么建的)
[dmdba@localhost ~]$ mkdir -p /dmdbms/data/DAMENG
[dmdba@localhost data]$ disql SYSDBA/SYSDBA
SQL> create tablespace tps_hxl datafile '/dmdbms/data/DAMENG/tps_hxl01.dbf' size 100 autoextend on;
这里的数据文件都不放在mp、sp、bp目录下,而是单独的目录/dmdbms/data/DAMENG
创建用户
SQL>CREATE USER hxl IDENTIFIED BY "dameng123" DEFAULT TABLESPACE tps_hxl;
SQL> grant dba to hxl;
使用新建的用户登录
disql hxl/dameng123
create table tb_hxl(id int,name varchar(32));
insert into tb_hxl values(1,'name1');
insert into tb_hxl values(2,'name1');
insert into tb_hxl values(3,'name1');
insert into tb_hxl values(4,'name1');
insert into tb_hxl values(5,'name1');
insert into tb_hxl values(6,'name1');
insert into tb_hxl values(7,'name1');
insert into tb_hxl values(8,'name1');
insert into tb_hxl values(9,'name1');
insert into tb_hxl values(10,'name1');
10.关闭顺序
使用 exit 命令退出 DMDPC 需要按照正确的顺序有序进行,按照如下顺序:退出 SP -> 退出 BP -> 退出 MP
标签:部署,dmdpc,SP,dmdbms,data,BP,RAFT,安装,DAMENG From: https://www.cnblogs.com/hxlasky/p/18129494