DM分布式集群概念:DMMPP大规模分布式集群,采用的完全对等无共享体系架构,结合了完全无共享体系的优点,在此基础上又前进了一步,不采用增加主控节点来协调所有并行处理的主从方式,而是各个节点完全对等,更进一步简化了体系的实现,也消除了系统可能存在的主节点瓶颈问题。
类似:TIDB就是这种完全对等不共享,GP就是完全不共享。
DMMPP中的每一个DM数据库服务器实例作为一个执行节点,简称EP。
客户端可连接任意一个EP节点进行操作,所有EP对客户来说都是对等的,数据根据用户指定的分布规则分布在不同的EP上。
MPP的核心在于对用户请求的并行执行,其执行流程可简单描述如下:
1.用户选择一个EP登录,此时该EP就是该用户的主EP,集群中的其余EP都是此用户的从EP;
2.主EP接收用户的SQL请求,并生成并行执行计划;
3.主EP将计划打包后分发给从EP;
4.各EP并行执行;
5.主EP收集各EP(包括自己)的执行结果;
6.主EP将执行结果汇总后返回给用户。
注意: 当某个EP出现故障后,整体集群均不可用,建议再做一层主备,当某一EP出现故障,直接切换到该EP下的备库,继续运行MDMPP。如果要做主备的话,包括ES,GP、Tidb等库,一条命令可以实现所有节点的主备功能,需要提前做好副本。
环境:
192.168.63.130,wjdb1,rhel7.6
192.168.63.131,wjdb2,rhel7.6
192.168.63.132,wjdb3,rhel7.6
03.数据库初始化参数
页大小:16K
簇大小:16
字符集:UTF-8
字符串比较大小写敏感:是
长度以字符为单位:否
数据库名:wjdb1,wjdb2,wjdb3
实例名:wjdb1,wjdb2,wjdb3
端口:5236,5269
日志文件大小:共 2 个(每个 256MB);
是否启用归档:不启用 (MPP一般适用于OLAP)
04.安装部署路径规划
实例名 Ip 地址
安装路径
数据目录路径
wjdb1 192.168.63.130 /dm/dmdbms/dm8 /dm/dmdata/
wjdb2 192.168.63.132 /dm/dmdbms/dm8 /dm/dmdata/
wjdb3 192.168.63.133 /dm/dmdbms/dm8 /dm/dmdata/
192.168.63.130/131/132:
cd /mnt
./DMInstall.bin -i
root:
/dm/dmdbms/dm8/script/root/root_installer.sh
192.168.63.130/131/132,然后各启动一次实例
su - dmdba
./dminit path=/dm/dmdata db_name=wjdb1 instance_name=wjdb1 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1
./dminit path=/dm/dmdata db_name=wjdb2 instance_name=wjdb2 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1
./dminit path=/dm/dmdata db_name=wjdb3 instance_name=wjdb3 LOG_SIZE=256 SYSDBA_PWD=dameng123 EXTENT_SIZE=16 PAGE_SIZE=16 charset=1
前台启动:
./dmserver /dm/dmdata/wjdb1/dm.ini
./dmserver /dm/dmdata/wjdb2/dm.ini
./dmserver /dm/dmdata/wjdb3/dm.ini
exit
注册:
su - root:
cd /dm/dmdbms/dm8/script/root
./dm_service_installer.sh -t dmserver -dm_ini /dm/dmdata/wjdb1/dm.ini -p wjdb1
cd /dm/dmdbms/dm8/script/root
./dm_service_installer.sh -t dmserver -dm_ini /dm/dmdata/wjdb2/dm.ini -p wjdb2
cd /dm/dmdbms/dm8/script/root
./dm_service_installer.sh -t dmserver -dm_ini /dm/dmdata/wjdb3/dm.ini -p wjdb3
su - dmdba
vi /dm/dmdata/wjdb1/dm.ini
vi /dm/dmdata/wjdb2/dm.ini
vi /dm/dmdata/wjdb3/dm.ini
根据130/131/132不同机器注释:
INSTANCE_NAME = wjdb1
#INSTANCE_NAME = wjdb2
#INSTANCE_NAME = wjdb3
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1
vi /dm/dmdata/wjdb1/dmmal.ini
vi /dm/dmdata/wjdb2/dmmal.ini
vi /dm/dmdata/wjdb3/dmmal.ini
[MAL_INST1]
MAL_INST_NAME = wjdb1 # 实例名 ,和dm.ini 的 NSTANCE_NAME 一致
MAL_HOST = 192.168.63.130 #MAL系统监听TCP连接的 IP 地址
MAL_PORT = 5269 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.63.130 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
[MAL_INST2]
MAL_INST_NAME = wjdb2
MAL_HOST = 192.168.63.131
MAL_PORT = 5269
MAL_INST_HOST = 192.168.63.131
MAL_INST_PORT = 5236
[MAL_INST3]
MAL_INST_NAME = wjdb3
MAL_HOST = 192.168.63.132
MAL_PORT = 5269
MAL_INST_HOST = 192.168.63.132
MAL_INST_PORT = 5236
或者拷贝过去:
scp /dm/dmdata/wjdb1/dmmal.ini 192.168.63.131:/dm/dmdata/wjdb2
scp /dm/dmdata/wjdb1/dmmal.ini 192.168.63.132:/dm/dmdata/wjdb3
192.168.63.130:
vi /dm/dmdata/wjdb1/dmmpp.ini
[SERVICE_NAME1]
MPP_SEQ_NO = 0
MPP_INST_NAME = wjdb1
[SERVICE_NAME2]
MPP_SEQ_NO = 1
MPP_INST_NAME = wjdb2
[SERVICE_NAME3]
MPP_SEQ_NO = 2
MPP_INST_NAME = wjdb3
dmctlcvt type=2 SRC=/dm/dmdata/wjdb1/dmmpp.ini DEST=/dm/dmdata/wjdb1/dmmpp.ctl
拷贝过去:
scp /dm/dmdata/wjdb1/dmmpp.ctl 192.168.63.131:/dm/dmdata/wjdb2/
scp /dm/dmdata/wjdb1/dmmpp.ctl 192.168.63.132:/dm/dmdata/wjdb3/
./DmServicewjdb1 start
./DmServicewjdb2 start
./DmServicewjdb3 start
MPP集群已配置完毕。
更多知识尽在达梦交流社区:
https://eco.dameng.com/