一、前言
达梦大规模并行处理 MPP(DM Massively Parallel Processing,缩写 DM MPP)是基于达梦数据库管理系统研发的完全对等无共享式集群组件,支持将多个 DM 数据库实例组织为一个并行计算网络,对外提供统一的数据库服务。
二、环境准备
| 实例名 | IP | 端口号 | 服务器配置 |
| EP01 | 192.168.255.137 | 5236 | 1核2G |
| EP02 | 192.168.255.138 | 5237 | 1核2G |
三、数据库初始化
1.在root用户下创建用户和组
groupadd dinstall
mkdir -p /home/dmdba
useradd -g dinstall -m -d /home/dmdba/dm -s /bin/bash dmdba
passwd dmdba
挂载镜像(如果下载的是压缩包,直接解压)
cd /opt/tmp
mount -o loop dm8_20211021_x86_rh6_64_ent_8.1.2.84.iso /mnt
2. 切换到dmdba用户,添加环境变量,修改dmdba用户家目录下.bashrc文件(/home/dmdba/dm/.bashrc)(rh7是 /home/dmdba/dm/.bash_profile )添加
su - dmdba
vim /home/dmdba/dm/.bashrc
export PATH=$PATH:/sbin
export PS1='[u@h w]$'
source .bashrc
3.创建安装文件目录(根据自己喜好建立)
创建数据、备份、归档、临时路径
mkdir -p /dbdata/dmdata /dbbak/dmbak /dbarch/dmarch /opt/tmp
chown -R dmdba:dinstall /opt/tmp /dbdata /dbbak /dbarch /home/dmdba
chmod -R 777 /opt/tmp
4.修改文件权限
cp /mnt/DMInstall.bin /home/dmdba/dm
chmod -R 777 /home/dmdba/dm/DMInstall.bin
ulimit -n 65536
vi /etc/security/limits.conf
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 10240
dmdba hard nproc 10240
dmdba soft core unlimited
dmdba hard core unlimited
5.开始安装
su - dmdba
export DM_INSTALL_TMPDIR=/opt/tmp/
cd /home/dmdba/dm
./DMInstall.bin -i
安装完后请以root系统用户执行命令:
/home/dmdba/dm/dmdbms/script/root/root_installer.sh
6.初始化
切换到dmdba用户下的bin文件中按实际需求修改初始化参数:
cd /home/dmdba/dm/dmdbms/bin
./dminit INI_FILE=/dbdata/dmdata/DAMENG/dm.ini PATH=/dbdata/dmdata extent_size=16 page_size=32 case_sensitive=y log_size=2048
初始化完成后:
cp /dbdata/dmdata/DAMENG/dm.ini /home/dmdba/dm/dmdbms/bin/
7.配置数据库启动脚本
修改安装目录bin下的service_template目录中有个 DmService 脚本:
cd /home/dmdba/dm/dmdbms/bin/service_template
cp DmService /home/dmdba/dm/dmdbms/bin/dmserverd
将脚本中ini配置修改成ini配置文件全路径:
vim /home/dmdba/dm/dmdbms/bin/dmserverd
INI_PATH=/home/dmdba/dm/dmdbms/bin/dm.ini
root 用户下
cp /home/dmdba/dm/dmdbms/bin/dmserverd /etc/init.d/
开机自启rh6
chkconfig dmserverd on
使用root用户
开机自启rh7
cd /home/dmdba/dm/dmdbms/script/root/
./dm_service_installer.sh -s /etc/init.d/dmserverd
启动数据库
cd /home/dmdba/dm/dmdbms/bin
./dmserverd start
或者
service dmserverd start
8.连接数据库
登入数据库
cd /home/dmdba/dm/dmdbms/bin
./disql sysdba/SYSDBA
关闭数据库
./dmserverd stop
以上步骤在EP01与EP02两台服务器上都进行数据库初始化
四.配置MPP相关文件参数
1.修改EP01的dm.ini参数
INSTANCE_NAME = EP01
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1
EP02:
INSTANCE_NAME = EP02
PORT_NUM = 5237
MAL_INI = 1
MPP_INI = 1
2.配置dmmal.ini
vi /dbdata/dmdata/DAMENG/dmmal.ini
[MAL_INST1]
MAL_INST_NAME = EP01
MAL_HOST = 192.168.255.137
MAL_PORT = 5269
MAL_INST_HOST = 192.168.255.137
MAL_INST_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 192.168.255.138
MAL_PORT = 5270
MAL_INST_HOST = 192.168.255.138
MAL_INST_PORT = 5237
同时将dmmal.ini传到备库
scp -rp dmmal.ini dmdba@192.168.255.138:/dbdata/dmdata/DAMENG/
3.创建dmmpp.ctl文件
dmmpp.ctl 是一个二进制文件,用户不能直接配置,需要先配置 dmmpp.ini。
vi /dbdata/dmdata/DAMENG/dmmpp.ctl
[SERVICE_NAME1]
MPP_SEQ_NO = 0
MPP_INST_NAME = EP01
[SERVICE_NAME2]
MPP_SEQ_NO = 1
MPP_INST_NAME = EP02
使用 DM 提供的工具 dmctlcvt 将 dmmpp.ini 转换成 dmmpp.ctl,dmctlcvt 工具 在 DM 安装目录的“bin”子目录中。 下面的命令将 dmmpp.ini 转换为 dmmpp.ctl,命令中的“TYPE=2”参数表示 将文本文件转换成控制文件,也可以使用“TYPE=1”参数进行逆向转换。
/home/dmdba/dm/dmdbms/bin/dmctlcvt TYPE=2 SRC=/dbdata/dmdata/DAMENG/dmmpp.ini DEST=/dbdata/dmdata/DAMENG/dmmpp.ctl
逆向转换
/home/dmdba/dm/dmdbms/bin/dmctlcvt TYPE=1 SRC=/dbdata/dmdata/DAMENG/dmmpp.ctl DEST=/dbdata/dmdata/DAMENG/dmmpp.ini
将生成的dmmpp.ctl文件拷贝到另一台服务器。
scp -rp dmmpp.ctl dmdba@192.168.255.138:/dbdata/dmdata/DAMENG/
4.启动数据库
两台数据库都要启动(MPP集群中的所有节点全部启动才能进行全局登入),用户登入任意一个节点都可以对数据库进行操作。
启动数据库
cd /home/dmdba/dm/dmdbms/bin
./dmserverd start
全局登入数据库
cd /home/dmdba/dm/dmdbms/bin
./disql sysdba/SYSDBA
本地登入数据库
./disql sysdba/SYSDBA@192.168.255.137:5236#"{mpp_type=local,inet_type=tcp}"
四、后记
在登入数据库时遇到以下错误时,说明MPP集群内的节点未完全开启,检查下其他节点是否都已开启。
以上是MPP框架搭建过程,如果文中哪里有误,欢迎指出,大家共同交流进步!
社区地址:https://eco.dameng.com



