本章节主要介绍在生产环境中(Linux 系统)规范化部署共享存储集群。
服务器硬件需求
按实际业务需求,选择合适的服务器,准备 2 台服务器,服务器参数建议如下:
| 硬件 | 要求 |
|---|---|
| 物理内存 | >=16GB |
| 交换区 | Swap 空间>=物理内存 |
| /tmp大小 | >1000 MB |
| 网络 | 物理机器需要 4 个网卡,2 个 public 网卡做 band,2 个 private 网卡做 band |
| 磁盘 | 根据实际应用系统需要挂载合适大小磁盘 |
| 共享存储 | 根据实际应用系统需要挂载合适大小共享存储 |
| 时间服务器 | 按机房要求配置连接时间服务器 |
操作系统要求
操作系统版本安装
DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。
目录与存储规划
本地目录规划:
| 用途 | 目录路径 | 备注 |
|---|---|---|
| 数据库软件安装目录 | /home/dmdba/dmdbms | 可用空间>50 GB |
| 本地归档日志存放目录 | /dmarch | 单独挂载磁盘 |
| 远程归档日志存放目录 | /remote_arch | 单独挂载磁盘 |
| 备份文件存放目录 | /dmbak | 单独挂载磁盘 |
共享存储规划:
| 用途 | 磁盘/分区 | 备注 |
|---|---|---|
| 存放 dcr 信息 | /dev/sdb | 1 GB 左右 |
| 存放 vote 信息 | /dev/sdc | 1 GB 左右 |
| 存放 redo 日志 | /dev/sdd | 10 GB 左右 |
| 存放数据文件 | /dev/sde | 根据实际数据大小分配 |
用户与组
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 | dsc1 | 5236 | 数据库实例 dmrw1 监听端口 |
| dmdsc1 | 192.168.56.11 | 10.0.0.11 | dsc1 | 9741 | 节点 1 DCR 检查数据库实例监听端口 |
| dmdsc1 | 192.168.56.11 | 10.0.0.11 | dsc1 | 9341 | 节点 1 CSS 进程 TCP 连接端口 |
| dmdsc1 | 192.168.56.11 | 10.0.0.11 | dsc1 | 9351 | 节点 1 ASM 进程 TCP 连接的端口 |
| dmdsc1 | 192.168.56.11 | 10.0.0.11 | dsc1 | 7236 | 节点 1 ASM 的 MAL 系统 TCP 连接的端口 |
| dmdsc1 | 192.168.56.11 | 10.0.0.11 | dsc1 | 9236 | 节点 1 数据库实例的 MAL 系统 TCP 连接的端口 |
| dmdsc2 | 192.168.56.12 | 10.0.0.12 | dsc2 | 5236 | 数据库实例 dmrw2 监听端口 |
| dmdsc2 | 192.168.56.12 | 10.0.0.12 | dsc2 | 9741 | 节点 2 DCR 检查数据库实例监听端口 |
| dmdsc2 | 192.168.56.12 | 10.0.0.12 | dsc2 | 9341 | 节点 2 CSS 进程 TCP 连接端口 |
| dmdsc2 | 192.168.56.12 | 10.0.0.12 | dsc2 | 9351 | 节点 2 ASM 进程 TCP 连接的端口 |
| dmdsc2 | 192.168.56.12 | 10.0.0.12 | dsc2 | 7236 | 节点 2 ASM 的 MAL 系统 TCP 连接的端口 |
| dmdsc2 | 192.168.56.12 | 10.0.0.12 | dsc2 | 9236 | 节点 2 数据库实例的 MAL 系统 TCP 连接的端口 |
防火墙集群之间需开放以上所有端口,集群对客户端只需要开通数据库实例监听端口。
安装数据库
数据库软件安装详见单机规范化部署。
软件安装目录为 /home/dmdba/dmdbms。
配置共享存储
udev 方式绑定裸设备。
注意共享存储需要在 2 个节点上都操作。
执行以下命令,查看磁盘。
lsblk |

sdb-sde 是需要配置的共享磁盘。
执行以下命令,新建 udev 规则文件。
vi /etc/udev/rules.d/90-raw.rules |
添加以下内容:
ACTION=="add",KERNEL=="sdb",RUN+="/bin/raw /dev/raw/raw1 %N" |
执行以下命令,使 udev 生效。
udevadm trigger --type=devices --action=change |
执行以下命令,检查是否配置成功。
ll /dev/raw/raw* |

注意如果查看不到配置的裸设备,请重启服务器再验证。
配置 DCR 初始化配置文件
创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:
mkdir -p /home/dmdba/config |
新建 dmdcr_cfg.ini 文件,节点 1 使用 dmdba 用户,执行以下命令:
vim /home/dmdba/config/dmdcr_cfg.ini |
添加以下内容:
DCR_N_GRP = 3 |
创建 ASM 磁盘
使用 dmdba 用户,到 DM 数据库软件安装目录的 bin 目录执行以下命令(只需在一个节点执行)。
./dmasmcmd |
进入 ASM 提示符后执行以下命令:
create dcrdisk '/dev/raw/raw1' 'dcr' |
create votedisk '/dev/raw/raw2' 'vote' |
create asmdisk '/dev/raw/raw3' 'LOG0' |
create asmdisk '/dev/raw/raw4' 'DATA0' |

使用编辑好的 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk,并在 ASM 提示符执行以下命令:
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/config/dmdcr_cfg.ini' identified by '123456' |
init votedisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini' |

注意DMASMCMD工具中执行命令结尾不要加分号。
配置ASM的MAL系统配置文件
2 个节点都需要配置,且文件内容相同,执行以下命令:
vi /home/dmdba/config/dmasvrmal.ini |
添加以下内容:
|
配置 DCR 启动配置文件
vi /home/dmdba/config/dmdcr.ini |
节点 1 添加以下内容:
DMDCR_PATH = /dev/raw/raw1 |
节点 2 添加以下内容:
DMDCR_PATH = /dev/raw/raw1 |
警告两个节点的 DMDCR_SEQNO 参数不能相同要唯一,DMDCR_DB_STARTUP_CMD 中启动脚本路径和配置文件路径要配置准确。如果不配置 css 自动启动 asm 和 db 则需要配置 DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 为 0
启动集群
启动DMCSS服务
2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令:
./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini |
提示先启动的节点是控制节点,本次实验配置了 css 自动启动 asm 和 db,等待 css 启动 asm 和 db 即可。
css 启动 asm 成功,如下图所示:(出现 asm is ready 即表明启动成功)

创建 ASM 磁盘组
asm 启动成功后,节点 1 使用 dmdba 用户启动 dmasmtool 工具。
./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini |
在 ASM 提示符下创建 asm 磁盘组,创建 redo 日志磁盘组,执行以下命令:
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3' |
创建数据文件磁盘组,执行以下命令:
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4' |
asm 磁盘组创建成功,执行以下命令:

初始化共享存储集群数据库实例
配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令:
vi /home/dmdba/config/dminit.ini |
添加以下内容:
db_name = DSC |
初始化实例,节点 1 使用 dmdba 用户执行以下命令:
./dminit control=/home/dmdba/config/dminit.ini |
实例初始化成功,如下图所示:

初始化完成后会在 init 控制文件配置的目录下生成 2 个实例的配置文件:

将 dsc2 目录复制到节点 2 上对应的目录下。
scp -r dsc2 192.168.56.12:/home/dmdba/config/ |
观察 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例启动成功。

注册服务
以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。
2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。
节点 1 执行以下命令:
./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /home/dmdba/config/dmdcr.ini |

节点 2 执行以下命令:
./dm_service_installer.sh -t dmcss -p css2 -dcr_ini /home/dmdba/config/dmdcr.ini |

关闭前台启动的 css,以服务方式启动 css。
节点 1 执行以下命令:
systemctl start DmCSSServicecss1 |
节点 2 执行以下命令:
systemctl start DmCSSServicecss2 |
验证集群状态
配置监视器查看
任意节点新建监视器配置文件,执行以下命令:
vi /home/dmdba/config/dmcssm.ini |
添加以下内容:
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致 |
启动监视器,dmdba 用户执行,到数据库软件安装目录 bin 下执行以下命令:
./dmcssm ini_path=/home/dmdba/config/dmcssm.ini |

输入 show 命令,查看 css、asm 和 db 的状态。

以 db 为例,inst_status 字段为 OPEN,vtd_status 字段为 WORKING,active 字段为 TRUE 说明 db 服务正常。
客户端验证
任意节点配置 dm_svc.conf 文件,执行以下命




