DM MPP大规模并行集群部署
-
简介
MPP (Massively Parallel Processing),即大规模并行处理,在数据库非共享集群中,每个节点都有独立的磁盘存储系统和内存系统,业务数据根据数据库模型和应用特点划分到各个节点上,每台数据节点通过专用网络或者商业通用网络互相连接,彼此协同计算,作为整体提供数据库服务。非共享数据库集群有完全的可伸缩性、高可用、高性能、优秀的性价比、资源共享等优势。
简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(与Hadoop相似)。
-
部署环境
表2‑1 部署环境
系统版本 |
Centos7.9 |
CPU型号 |
Intel(R) i5-7200U CPU (2核) |
磁盘空间 |
40G |
内存大小 |
2G |
表2‑2 磁盘规划
数据 |
/dev/mapper/vg_dm-lv_dmdata |
备份 |
/dev/mapper/vg_dm-lv_dmbak |
归档 |
/dev/mapper/vg_dm-lv_arch |
表2‑3 目录规划
数据库软件安装目录 |
/home/dmdba/dmdbms |
实例安装目录 |
/dmdata |
归档存放目录 |
/dmdata/arch |
备份存放目录 |
/dmdata/dmbak/ |
表2‑4 IP端口规划
实例名 |
IP |
实例端口 |
MAL端口 |
mpp1 |
192.168.254.144 |
5236 |
7236 |
mpp2 |
192.168.254.145 |
5236 |
7236 |
-
DM MPP大规模并行集群部署
-
安装DM 8并初始化实例
-
安装过程本文略
./dminit path=/dmdata db_name=dmmpp1 instance_name=dmmpp1 page_size=32 extent_size=16 charset=1 log_size=2048 SYSDBA_PWD="SYSDBA" SYSAUDITOR_PWD="SYSDBA" |
-
配置实例的配置文件 dm.ini
//修改dmmpp1实例的 dm.ini 文件参数,执行以下命令: vi /home/dmdba/dmdbms/dmmpp1/dm.ini
INSTANCE_NAME = dmmpp1 MAL_INI = 1 MPP_INI = 1
//修改dmmpp2实例的 dm.ini 文件参数,执行以下命令: vi /home/dmdba/dmdbms/dmmpp2/dm.ini
INSTANCE_NAME = dmmpp2 MAL_INI = 1 MPP_INI = 1 |
-
配置MAL系统配置文件dmmal.ini
//执行以下命令,在实例目录下新建文件dmmal.ini,所有节点文件内容要相同 MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间 [MAL_INST1] MAL_INST_NAME = dmmpp1 MAL_HOST = 192.168.254.144 MAL_PORT = 7236 MAL_INST_HOST = 192.168.56.11 MAL_INST_PORT = 5236 [MAL_INST2] MAL_INST_NAME = dmmpp2 MAL_HOST = 192.168.254.145 MAL_PORT = 7236 MAL_INST_HOST = 192.168.254.145 MAL_INST_PORT = 5236 |
图3‑1 修改dmmal配置文件
-
配置 MPP 控制文件 dmmpp.ctl
//在其中一个节点新建 dmmpp.ini 配置文件,执行以下命令: vi /home/dmdba/dmdbms/dmmpp/dmmpp.ini
[SERVICE_NAME1] MPP_SEQ_NO = 0 MPP_INST_NAME = dmmpp1 [SERVICE_NAME2] MPP_SEQ_NO = 1 MPP_INST_NAME = dmmpp2
//使用 dmctlcvt 工具将 dmmpp.ini 文件转化为 dmmpp.ctl,在数据库安装的 bin 目录下执行以下命令: ./dmctlcvt TYPE=2 SRC=/dmdata/dmmpp/dmmpp.ini DEST=/dmdata/dmmpp/dmmpp.ctl //将生成的 dmmpp.ctl 控制文件复制到另一个节点的实例目录下: scp -r /dmdata/dmmpp/dmmpp.ctl dmdba@192.168.254.135:/dmdata/dmmpp |
图3‑2 SCP发送dmmpp.ctl到其他节点下
-
启动集群
//正常启动实例即可,需要所有节点都启动后,集群才能访问。 systemctl start DmServicedmmpp |
-
验证集群
//客户端登录任意节点 ./disql SYSDBA/'"SYSDBA"' SQL> select instance_name from v$instance; |
图3‑3 查看MPP所有节点信息
技术社区地址:https://eco.dameng.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下