Window配置简单的MPP集群
D:\DM8\data\DAMENG4
D:\DM8\data\DAMENG5
二个数据库实例的dm.ini文件
搭建mpp集群实例必须是没有进行操作的空实例
dm.ini
实例一修改
INSTANCE_NAME = EP01 PORT_NUM = 5240 MAL_INI = 1 MPP_INI = 1
实例二修改
INSTANCE_NAME = EP02 PORT_NUM = 5241 MAL_INI = 1 MPP_INI = 1
dmmal.ini和dmmpp.ini二个实例一致
dmmal.ini 是 MAL 系统的配置文件,此配置文件生效的前提是 dm.ini 中的参数 MAL_INI 置为 1。使用同一套 MAL 系统的所有实例,MAL 系统配置文件要严格保持一致。
dmmal.ini 内容
[MAL_INST1]
MAL_INST_NAME = EP01
MAL_HOST = 172.20.10.7
MAL_PORT = 5369
MAL_INST_HOST = 172.20.10.7
MAL_INST_PORT = 5240
[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 172.20.10.7
MAL_PORT = 5370
MAL_INST_HOST = 172.20.10.7
MAL_INST_PORT = 5241
dmmpp.ini内容
[SERVICE_NAME1]
MPP_SEQ_NO = 0
MPP_INST_NAME = EPO1
[SERVICE_NAME2]
MPP_SEQ_NO = 1
MPP_INST_NAME = EPO2
原理为dm实例启动mal和mpp配置
dmmpp.ini配置MPP_INST_NAME管理这二个实例,而MPP_SEQ_NO则是实例编号,在主备时也会用到,一般会把主配置到里面排序
dmmal.ini则是配置所有实例,一般参数有
MAL_INST_NAME实例名称
MAL_HOST实例ip地址
MAL_PORT监听端口(不要占用实例端口)
MAL_INST_HOST实例对外服务 IP 地址
MAL_INST_PORT 实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
使用dmctlcvt生成dmmpp.ctl文件
dmctlcvt TYPE=2 SRC=dmmpp.ini 地址DEST=dmmpp.ctl生成地址
启动后会出现警告
配置完成后需要重新启动实例服务
使用disql运行
运行时需要mount方式启动
D:\DM8\bin cmd启动运行
dmserver D:\DM8\data\DAMENG4\dm.ini mount
dmserver D:\DM8\data\DAMENG5\dm.ini mount
disql SYSDBA/SYSDBA@localhost:5240
另外启动一个cmd运行
disql SYSDBA/SYSDBA@localhost:5241
创建 LIST 分布表 T_LIST,分布列为 C1。
CREATE TABLE T_LIST(C1 INT, C2 CHAR(10))
DISTRIBUTED BY LIST (C1) (VALUES(3) ON EP01,VALUES(4) ON EP02);
创建范围分布表 T_RANGE,分布列为 C1。
只要一个实例添加表另一个实例也会添加
使用普通实例创建普通表插入数据1000000条
使用mpp创建普通表插入数据1000000条
集群效率高于单个实例
Linux 搭建MPP集群
linux单网卡搭建
1.虚拟机ip地址为192.168.1.128
2.先配置二个数据库实例
二个虚拟机对应端口为 5238 和5239
3.dm实例目录下配置dm.ini
实例一修改参数
INSTANCE_NAME = dm01
PORT_NUM = 5238 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
MPP_INI = 1 #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
实例二修改参数
INSTANCE_NAME = dm02
PORT_NUM = 5239 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
MPP_INI = 1 #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
5.dm实例目录下配置dmmal.ini
[MAL_INST1]
MAL_INST_NAME =dm01
MAL_HOST = 192.168.1.128 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5337 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.1.128 #实例的对外服务 IP 地址
MAL_INST_PORT = 5238 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
[MAL_INST2]
MAL_INST_NAME = dm02
MAL_HOST = 192.168.1.128
MAL_PORT = 5337
MAL_INST_HOST = 192.168.1.128
MAL_INST_PORT = 5239
7.dm实例目录下配置dmmpp.ini
[SERVICE_NAME1]
MPP_SEQ_NO = 0
MPP_INST_NAME = dm01
[SERVICE_NAME2]
MPP_SEQ_NO = 1
MPP_INST_NAME = dm02
8.dmmpp.ini 转换成 dmmpp.ctl
dmctlcvt TYPE=2 SRC=/dm8/data/DMENG3/dmmpp.ini
DEST=/dm8/data/DMENG3/dmmpp.ctl
9.重启数据库实例服务
systemctl stop DmServiceDMSERVER3.service
systemctl restart DmServiceDMSERVER3.service
systemctl stop DmServiceDMSERVER4.service
systemctl restart DmServiceDMSERVER4.service
10.使用disql运行MPP
进入dm bin目录mount方式启动
cd /dm8/bin
./dmserver /dm8/data/DAMENG4/dm.ini mount
./dmserver /dm8/data/DAMENG5/dm.ini mount
./disql SYSDBA/SYSDBA@localhost:5240
另外启动一个cmd运行
./disql SYSDBA/SYSDBA@localhost:5241
mpp集群操作如window
社区地址:https://eco.dameng.com