本章节主要介绍在生产环境中(Linux 系统)规范化部署大规模并行集群。
服务器硬件需求
按实际业务需求,选择合适的服务器,准备 2 台服务器,服务器参数建议如下:
| 硬件 | 要求 |
|---|---|
| 物理内存 | >=16 GB |
| 交换区 | Swap 空间>=物理内存 |
| /tmp大小 | > 1000 MB |
| 网络 | 物理机器需要 4 个网卡,2 个 public 网卡做 band,2 个 private 网卡做 band |
| 磁盘 | 根据实际应用系统需要挂载合适大小磁盘 |
| 时间服务器 | 按机房要求配置连接时间服务器 |
操作系统要求
操作系统版本安装
DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。
目录与存储规划
| 用途 | 目录路径 | 备注 |
|---|---|---|
| 数据库软件安装目录 | /home/dmdba/dmdbms | 可用空间>50 GB |
| 实例安装目录 | /dmdata | 单独挂载性能最好的磁盘建议 SSD |
| 归档日志存放目录 | /dmarch | 单独挂载磁盘 |
| 备份文件存放目录 | /dmbak | 单独挂载磁盘 |
用户与组
DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。
执行以下命令,新建用户组 dinstall。
groupadd dinstall |
执行以下命令,新建用户 dmdba。
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba |
执行以下命令,修改 dmdba 用户密码。
passwd dmdba |
输入密码并确认。
用户资源限制
执行以下命令,修改 dmdba 用户资源限制。
vim /etc/security/limits.conf |
文件末尾添加如下内容:
dmdba soft core unlimited |
用户环境变量
执行以下命令,修改 dmdba 用户环境变量。
vi /home/dmdba/.bash_profile |
文件末尾添加如下内容:
export DM_HOME=/home/dmdba/dmdbms |
防火墙设置
端口规划
搭建 2 节点大规模并行集群,端口规划如下:(实际中可以按需要修改端口号)
| 主机名 | public ip | private ip | 实例名 | 端口 | 用途 |
|---|---|---|---|---|---|
| dmdsc1 | 192.168.56.11 | 10.0.0.11 | dmmpp1 | 5236 | 数据库实例 dmmpp1 监听端口 |
| dmdsc1 | 192.168.56.11 | 10.0.0.11 | dmmpp1 | 7236 | MAL 系统监听 TCP 连接的端口 |
| dmdsc2 | 192.168.56.12 | 10.0.0.12 | dmmpp2 | 5236 | 数据库实例 dmmpp2 监听端口 |
| dmdsc2 | 192.168.56.12 | 10.0.0.12 | dmmpp2 | 7236 | MAL 系统监听 TCP 连接的端口 |
防火墙集群之间需开放以上所有端口,集群对客户端只需要开通数据库实例监听端口。
安装数据库
数据库软件安装详见单机规范化部署。
软件安装目录为 /home/dmdba/dmdbms,实例初始化目录 /home/dmdba/dmdbms/dmmpp,初始化脚本如下:
./dminit path=/home/dmdba/dmdbms db_name=dmmpp page_size=32 |
配置实例的配置文件 dm.ini
修改实例的 dm.ini 文件参数,执行以下命令:
vi /home/dmdba/dmdbms/dmmpp/dm.ini |
dmmpp1 实例修改以下参数值:
INSTANCE_NAME = dmmpp1 |
dmmpp2 实例修改以下参数值:
INSTANCE_NAME = dmmpp2 |
配置MAL系统配置文件dmmal.ini
执行以下命令,在实例目录下新建文件 ·dmmal.ini·。
vi /home/dmdba/dmdbms/dmmpp/dmmal.ini |
所有节点文件内容要相同。
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔 |
配置 MPP 控制文件 dmmpp.ctl
在其中一个节点新建 dmmpp.ini 配置文件,执行以下命令:
vi /home/dmdba/dmdbms/dmmpp/dmmpp.ini |
添加以下内容:
[SERVICE_NAME1] |
使用 dmctlcvt 工具将 dmmpp.ini 文件转化为 dmmpp.ctl,在数据库安装的 bin 目录下执行以下命令:
./dmctlcvt TYPE=2 SRC=/home/dmdba/dmdbms/dmmpp/dmmpp.ini DEST=/home/dmdba/dmdbms/dmmpp/dmmpp.ctl |
将生成的 dmmpp.ctl 控制文件复制到另一个节点的实例目录下。
启动集群
正常启动实例即可,在数据库安装的 bin 目录下执行以下命令:
./dmserver /home/dmdba/dmdbms/dmmpp/dm.ini |
注意需要所有节点都启动后,集群才能访问。
注册服务
root 用户下切换到 /home/dmdba/dmdbms/script/root/,执行以下命令:
cd /home/dmdba/dmdbms/script/root/ |
脚本注册服务,执行以下命令:
./dm_service_installer.sh -t dmserver -p dmmpp -dm_ini /home/dmdba/dmdbms/dmmpp/dm.ini |
以服务方式启动实例,执行以下命令:
systemctl start DmServicedmmpp |
验证集群
客户端登录任意节点。

查询可以看到所有节点实例信息。
参数优化
集群部署完成后,需要优化 dm.ini 参数,主备库都需要修改。参数值优化详见参数优化部分。
重启集群
所有节点重启实例,执行以下命令:
systemctl restart DmServicedmmpp |
定制备份策略
备份与单机部署相同,详见定制备份策略部分。
客户端连接集群
客户端主机上需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:
- 32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
- 64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
- 32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
- 在 Linux 平台下,此文件位于/etc 目录。
文件内容如下:
# 以#开头的行表示是注释 |
客户端程序连接数据库时,需要指定 ip 端口处替换为服务名即可,例如:
disql SYSDBA/SYSDBA@DMMPP
注意当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。




