数据库主流系统架构特点比较:
完全共享:局限于单节点服务器,价格昂贵,扩展性、性能受限。
共享磁盘:允许多个服务器实例共享存储设备,可有效解决单实例负载问题,具有一定的扩展性,但当节点增加到一定程度以后,由于对I/0资源,锁资源等的激烈竞争,反而导致性能的下降。扩展性和性能在系统规模变大时受损。同时共享磁盘等硬件也十分昂贵。
完全不共享:部署在高速网络,各节点相对独立,无共享I/O,扩展性和性能良好,缺点时系统中有一个主控节点,系统规模扩充可能成为瓶颈,主控节点无备份,容易形成单点故障。
完全对等不共享:继承了完全不共享架构的优点,且各节点完全对等,不需要专用硬件,不存在主控节点,清除了潜在瓶颈以及单节点故障问题。
MPP集群的搭建
-
在两个虚拟机节点上安装数据库,并初始化实例,我的博客中有讲解,这里不再赘诉过程。
-
分别对两个实例的dm.ini进行配置
INSTANCE_NAME = EP01
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1
INSTANCE_NAME = EP02
PORT_NUM = 5237
MAL_INI = 1
MPP_INI = 1
- 配置dmmal.ini文件
[MAL_INST1]
MAL_INST_NAME = EP01
MAL_HOST = 192.168.59.135
MAL_PORT = 5269
MAL_INST_HOST = 192.168.59.135
MAL_INST_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 192.168.59.136
MAL_PORT = 5270
MAL_INST_HOST = 192.168.29.136
MAL_INST_PORT = 5237
- 配置dmmpp,ctl文件
[SERVICE_NAME1]
MPP_SEQ_NO = 0
MPP_INST_NAME = EP01
[SERVICE_NAME2]
MPP_SEQ_NO = 1
MPP_INST_NAME = EP02
//由于我们需要的是dmmpp.ctl二进制文件
所以我们需要使用dm自带的dmctlcvt工具转换其为二进制文件
[dmdba@localhost bin]$ ./dmctlcvt type=2 src=/dm/data/DAMENG/dmmpp.ini dest=/dm/data/DAMENG/dmmpp.ctl
该文件需要跟dm.ini在一个文件夹下
- 运行MPP
分别启动EP01和EP02 的DM数据库实例服务(顺序随便)。