1. 前言
DM 大规模并行处理 MPP 是基于达梦数据库管理系统研发的完全无对等共享式集群,在 DM MPP 集群中支持对各 DM 数据库实例同时运行并构建一个 大规模的并行计算网络,向外界为不同应用提供访问服务。
2.部署前的准备
2.1主机及端口规划
主机 | IP地址 | 部署服务 |
---|---|---|
DMMPP_EP0 | 1192.168.150.137(外网) 192.168.10.60(内网) | EP0服务节点 |
DMMPP_EP1 | 192.168.150.138(外网) 192.168.10 .70 (内网) | EP1服务节点 |
DM_MONNITOR | 192.168.10.30) | 监视器 |
实例 | MAL_INST_HOST | MAL_INSTANCE_PORT | MAL_HOST | MAL_PORT | MPP_SEQNO |
---|---|---|---|---|---|
DMMPP_EP0 | 192.168.150.137 | 5236 | 192.168.10.60 | 5269 | 1 |
DMMPP_EP1 | 192.168.150.138 | 5236 | 192.168.10.70 | 5269 | 2 |
3. 部署流程记录
3.1 初始化实例
两台主机上的 DM 数据库安装目录均为”/dm8”
, 安装用户为 dmdba,安 装用户组为 dinstall,分别在两台台主机上初始实例:DMMPP_EP0
DMMPP_EP1
。 具体步骤如下:
./dminit path=/dm8/data instance_name=DMMPP_EP0 db_name=DMMPP port_num=5234 #初始化 EP0 实例
./dminit path=/dm8/data instance_name=DMMPP_EP1 db_name=DMMPP port_num=5234 #初始化 EP1 实例
3.2 注册后台服务
进入DM安装目录的/tool/script/
目录下,使用dm_service_installer.sh
为新初始化的数据库实例注册服务,执行以下指令:
- 注册实例DMMPP_EP0
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/ data/DMRW/dm.ini -p GRP1_RWW_01
- 注册实例DMMPP_EP1
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/ data/DMRW/dm.ini -p GRP1_RWW_02
在创建服务完成后,可以使用 “systemctl status DmService[服务名]”指令来查 看实例的运行状态,使用“systemctl start/stop DmService[服务名]”指令来启停实例服务
3.3 配置dm.ini
- 打开实例
DMMPP_EP0
的dm.ini
文件,修改以下参数:
INSTANCE_NAME = DMMPP_EP0 #数据库实例名
PORT_NUM = 5234 #数据库实例监听端口
MAL_INI = 1 #打开 MAL 系统
MPP_IN=1 #打开 MPP 配置
- 打开实例
DMMPP_EP1
的dm.ini
文件,修改以下参数:
INSTANCE_NAME = DMMPP_EP1 #数据库实例名
PORT_NUM = 5234 #数据库实例监听端口
MAL_INI = 1 #打开 MAL 系统
MPP_IN=1 #打开 MPP 配置
3.4 配置 dmmal.ini
在每个节点的实例目录下新建 dmmal.ini
文件,进行如下配置,在 MPP 节点 中的每个实例中的 MAL 配置文件需要一致:
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DMMPP_EP0
MAL_HOST = 192.168.10.60
MAL_PORT = 5336
MAL_INST_HOST = 192.168.150.137
MAL_INST_PORT = 5234
[MAL_INST2]
MAL_INST_NAME = DMMPP_EP1
MAL_HOST = 192.168.10.70
MAL_PORT = 5337
MAL_INST_HOST = 192.168.150.138
MAL_INST_PORT = 5234
3.4 配置 dmmpp.ctl
在 EP0 节点实例文件中新建 dmmpp.ini 文件,文件配置参数如下:
[SERVICE_NAME1]
MPP_SEQ_NO = 0
MPP_INST_NAME = DMMPP_EP0
[SERVICE_NAME2]
MPP_SEQ_NO = 1
MPP_INST_NAME = DMMPP_EP1
使用 DM 提供的 dmctlcvt 工具
将 dmmpp.ini 转换成 dmmpp.ctl 控制文件“TYPE=2”参数表示将 dmmpp.ini 文本文件转换成控制文件,也可以使用“TYPE=1” 参数进行逆向转换。 进入数据库安装目录 bin 文件夹下,执行以下指令:
./dmctlcvt TYPE=2 SRC=/dm8/data/DMMPP/dmmpp.ini DEST=/dm8/data/ DMMPP/dmmpp.ctl
为确保各节点的 dmmpp 文件一致,将./dmmpp.ini
、. /dmmpp.ctl
文件拷贝到 EP1 节点主机对应的目录下,在节点 EP0 实例目录下执行以下指令:
scp -r ./dmmapp.ini ./dmmpp.ctl dmdba@192.168.150.138:/dm8/data/DMMPP/
4. 启动实例集群并验证
分别启动节点 EP0,EP1 上的实例,如图所示:
此时,随便在任意一个节点上打开 disql 工具登录到实例,执行实例信息查 询,在默认不指定登录模式时,其登录模式为 GLOBAL,可以看到查询结果中存在 两个实例信息,查询结果如图所示:
随后更换登录模式,在登录的命令字段中加入#”{mpp_tyoe=LOCAL}”限定 当前登录集群为本地模式,继续执行查询实例操作,此时能够看到的是查询结果 只显示一行实例信息,即是当前登录节点的实例信息,而看不到其余节点的实例 信息,查询结果如图:
5.小结
如上述过程所示,使用 GLOBAL 和 LOCAL 模式登录到部署完成的两节点 DM MMPP 集群的操作结果符合预期效果,即使用 GLOBAL 模式登录到 DM MPP 集群能 够访问到集群中的各个节点 EP,而使用 LOCAL 模式登录到集群时,只能访问到 当前本地的实例。普通 DM MPP 集群部署工作完成。
更多技术支持与交流请访问达梦在线服务平台 :https://eco.dameng.com/