一、基本概念与原理
DM MPP 系统中每一个运行的 DM 数据库服务器实例称为一个执行节点 EP。DM MPP 采用完全对等无共享架构,对整个系统来说,每个EP 作用都是一样的,用户可以连接到其中的任何一个进行操作。而对每个用户会话来说,EP 具有主从之分。用户会话实际连接的那个 EP对该用户会话来说称为主 EP,其余的 EP 都称为从 EP。
举个例子: 三节点mpp,比如hash分布,一个表,数据就会根据hash分布规则分布到三个节点,每个节点数据不一样。三个节点数据加起来是一张表的数据。用户可以很快的访问分布在其中一个节点的数据。如果你发出的sql,数据变化只是本节点还好,如果涉及其他节点数据也变化,集群之间通信就靠网络了,节点越多,网络压力越大。
MPP 各 EP 使用的 DM 服务器版本应一致,同时还应注意各 EP 所在主机的操作系统位数、大小端模式、时区及时间设置都应一致,否则可能造成意想不到的错误。
二、部署方法
-
配置EP01 的 dm.ini
INSTANCE_NAME = EP01 PORT_NUM = 5236 MAL_INI = 1 MPP_INI = 1
-
配置 EP02 的 dm.ini
INSTANCE_NAME = EP02 PORT_NUM = 5237 MAL_INI = 1 MPP_INI = 1
-
配置dmmal.ini 为两个 EP 配置 dmmal.ini 如下,配置完全一样
[MAL_INST1] MAL_INST_NAME = EP01 MAL_HOST = 192.168.218.133 MAL_PORT = 5269 MAL_INST_HOST = 192.168.218.133 #连接数据库服务器使用的IP地址 MAL_INST_PORT = 5236 #实例服务器监听通讯端口号。此参数的配置应与DM.INI 中的PORT_NUM 保持一致 [MAL_INST2] MAL_INST_NAME = EP02 MAL_HOST = 192.168.218.134 MAL_PORT = 5270 MAL_INST_HOST = 192.168.218.134 MAL_INST_PORT = 5237
-
配置dmmpp.ctl 此文件是一个二进制文件,用户不能直接配置,需要先配置 dmmpp.ini。配置
dmmpp.ini 如下:[SERVICE_NAME1] MPP_SEQ_NO = 0 MPP_INST_NAME = EP01 [SERVICE_NAME2] MPP_SEQ_NO = 1 MPP_INST_NAME = EP02
使用安装目录bin目录下的dmctlcvt工具转化为.ctl 命令中TYPE=2表示将文本转化为ctl可以用TYPE=1逆转换
./dmctlcvt TYPE=2 SRC=dmdbms\data\dameng\dmmpp.ini DEST=dmdbms\data\dameng\dmmpp.ctl
将生成的dmmpp.ctl拷贝至其他EP保证所有dmmpp.ctl完全一致。
scp -r /home/dmdba/dmdbms/data/DAMENG/dmmpp.ctl dmdba@192.168.218.134:/home/dmdba/dmdbms/data/DAMENG/
-
启动和关闭MPP
启动:分别启动 EP01 和 EP02 的 DM 数据库实例(顺序不分先后),DM MPP 系统即能正常运行。
关闭:需要停止 DM MPP 系统的运行时,只需要停止每个 EP 的 DM 实例即可,没有特别的顺序要求。若在 DM MPP 系统的运行过程中,某一 EP 发生故障停机,则整个 MPP
系统将处于不能正常服务的状态。当前所有的用户会话会被系统断开,不能进行全局登录,只能进行本地登录。因此,为了保证 MPP
系统的高可用性,强烈建议采用 DM MPP 与数据守护相结合的部署方案。
达梦社区地址:https://eco.dameng.com