注册
DMDSC两节点集群安装部署
专栏/技术分享/ 文章详情 /

DMDSC两节点集群安装部署

Cath Palug 2026/07/23 70 0 0
摘要

DMDSC 两节点集群安装部署

一、硬件环境

项目 配置
服务器数量 2 台(虚拟机)
CPU 4 核
内存 8 GB
磁盘 系统盘 50G + 共享数据盘 4 块
网卡 2 块
节点信息
角色 主机名 IP地址 说明
节点 0 DSC01 192.168.21.133 主节点(Control Node)
节点 1 DSC02 192.168.21.134 备节点(Normal Node)

二、操作系统

项目 配置
操作系统 银河麒麟高级服务器操作系统 V10(Kylin-Server-V10)
内核版本 Linux Kernel 4.19+
字符集 LANG=en_US.UTF-8
防火墙 开放指定端口或关闭
SELinux disabled
说明:达梦 DM8 对麒麟 V10 提供原生支持,在 VMware 中安装麒麟 V10 虚拟机时,客户机操作系统建议选择CentOS 7 64 位。达梦数据库针对不同的 CPU 架构(x86、ARM、飞腾、龙芯等)提供了不同的安装包,请根据实际架构选择对应的安装介质。

三、用户和组规划

两台机器均需执行(以 root 用户操作)
操作 命令 说明
创建用户组 groupadd dmdba 创建 dmdba 组
创建用户 useradd -g dmdba dmdba 创建 dmdba 用户并加入 dmdba 组
设置密码 passwd dmdba 按提示设置密码
完整命令(root 用户执行)
groupadd dmdbauseradd -g dmdba dmdbapasswd dmdba

四、系统环境配置

两台机器均需执行(以 root 用户操作)
4.1 关闭防火墙(可选,生产环境按需配置)
#临时关闭防火墙(重启失效)
systemctl stop firewalld
#永久关闭防火墙
systemctl disable firewalld
麒麟 V10 默认启用防火墙,为便于集群通信,建议关闭或开放指定端口。

4.2 关闭 SELinux
#临时关闭setenforce 0
#永久关闭(编辑配置文件)
vi /etc/selinux/config
将 SELINUX=enforcing 修改为 SELINUX=disabled

五、目录规划

两台机器均需执行(以 dmdba 用户操作)
目录 用途 所有者
/home/dmdba/dmdsc DMDSC 环境主目录 dmdba:dmdba
/home/dmdba/dmdsc/bin DM 执行码和工具存放目录 dmdba:dmdba
/home/dmdba/dmdsc/data/DSC01 节点0 配置文件目录 dmdba:dmdba
/home/dmdba/dmdsc/data/DSC02 节点1 配置文件目录 dmdba:dmdba
在 DSC01 机器上执行(dmdba 用户)
mkdir -p /home/dmdba/dmdsc/binmkdir -p /home/dmdba/dmdsc/data/DSC01
在 DSC02 机器上执行(dmdba 用户)
mkdir -p /home/dmdba/dmdsc/binmkdir -p /home/dmdba/dmdsc/data/DSC02

六、存储规划

6.1 共享磁盘规划(在 VMware 宿主机上创建)
使用 VMware Workstation工具创建 4 块共享磁盘:
磁盘用途 大小 文件名 说明
DCR 盘 1 GB DCR.vmdk 存储集群注册信息
VOTE 盘 1 GB VOTE.vmdk 表决磁盘,用于集群仲裁
DMDATA 盘 20 GB DMDATA.vmdk 存储业务数据
DMLOG 盘 10 GB DMLOG.vmdk 存储重做日志

在“第一台”虚拟机(DSC01)上依次添加四块磁盘
关闭 DSC01 虚拟机。
右键 DSC01 → “设置” → “添加” → “硬盘” → “下一步” → 选择“SCSI” → “创建新虚拟磁盘”。
设置大小(参照文档建议:DCR 1G,VOTE 1G,DATA 10~20G,LOG 10G),勾选“将虚拟磁盘存储为单个文件”,指定一个存放路径(例如 D:\DSC_Shared\DCR.vmdk)。
完成添加后,在虚拟机设置中选中该硬盘,点击“高级”,将“虚拟设备节点”分别设置为:
DCR→ SCSI 1:1
VOTE→ SCSI 1:2
DMDATA→ SCSI 1:3
DMLOG→ SCSI 1:4
模式均选“独立”和“永久”。
依次完成四块盘的创建。

6.2 在“第二台”虚拟机(DSC02)上挂载相同磁盘
关闭 DSC02 虚拟机。
右键 DSC02 → “设置” → “添加” → “硬盘” → “下一步” → 选择“使用现有虚拟磁盘”。
浏览并选择之前为 DSC02 创建的对应 .vmdk 文件(如 DCR.vmdk)。
添加后同样进入“高级”,将“虚拟设备节点”设置得与DSC01完全一致(SCSI 1:1、1:2、1:3、1:4),模式也为“独立”和“永久”。
四块盘依次完成。

6.3 修改 .vmx 配置文件
找到每台虚拟机存放的目录,用文本编辑器打开.vmx文件。
在文件末尾添加以下内容:
scsi1.sharedBus = “virtual”
scsi1:1.deviceType = “disk”
scsi1:2.deviceType = “disk”
scsi1:3.deviceType = “disk”
scsi1:4.deviceType = “disk”
disk.locking = “FALSE”
disk.EnableUUID = “TRUE”
diskLib.dataCacheMaxSize = “0”
diskLib.dataCacheMaxReadAheadSize = “0”
diskLib.DataCacheMinReadAheadSize = “0”
diskLib.dataCachePageSize = "4096"diskLib.maxUnsyncedWrites = “0”
注意:scsi1:1等节点号必须与之前在图形界面中设置的完全一致。保存并关闭文件

七、UDEV 磁盘固定配置

两台机器均需执行(以 root 用户操作)
image.png
7.1 获取磁盘 scsi_id
查看磁盘设备 lsblk
获取每块磁盘的 scsi_id(示例,实际以环境为准)
/usr/lib/udev/scsi_id -g -u /dev/sdb # DCR
/usr/lib/udev/scsi_id -g -u /dev/sdc # VOTE
/usr/lib/udev/scsi_id -g -u /dev/sdd # DMDATA
/usr/lib/udev/scsi_id -g -u /dev/sde # DMLOG

7.2 创建 UDEV 规则文件
两台机器内容完全相同,编辑/etc/udev/rules.d/66-dmdevices.rules:
vi /etc/udev/rules.d/66-dmdevices.rules
##DCR 磁盘
KERNEL==“sd*”, SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/name", RESULT=="<实际DCR盘的scsi_id>", SYMLINK+="DCR", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/name; mkdir -p /dev_DSC2; ln -s /dev/DCR /dev_DSC2/DCR’"

##VOTE 磁盘
KERNEL==“sd*”, SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/name", RESULT=="<实际VOTE盘的scsi_id>", SYMLINK+="VOTE", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/name; ln -s /dev/VOTE /dev_DSC2/VOTE’"

##DMDATA 磁盘
KERNEL==“sd*”, SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/name", RESULT=="<实际DMDATA盘的scsi_id>", SYMLINK+="DMDATA", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/name; ln -s /dev/DMDATA /dev_DSC2/DMDATA’"

##DMLOG 磁盘
KERNEL==“sd*”, SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/name", RESULT=="<实际DMLOG盘的scsi_id>", SYMLINK+="DMLOG", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/name; ln -s /dev/DMLOG /dev_DSC2/DMLOG; chown -R dmdba:dmdba /dev_DSC2’"

7.3 重启 UDEV 服务并验证
重新加载规则
udevadm control --reload-rules && udevadm trigger && udevadm settle
验证软链接
ls -lth /dev_DSC2/
预期输出:
lrwxrwxrwx 1 dmdba dmdba 27 日期 DCR -> /dev/DCR
lrwxrwxrwx 1 dmdba dmdba 27 日期 VOTE -> /dev/VOTE
lrwxrwxrwx 1 dmdba dmdba 27 日期 DMDATA -> /dev/DMDATA
lrwxrwxrwx 1 dmdba dmdba 27 日期 DMLOG -> /dev/DMLOG

八、DM 二进制文件准备

两台机器均需执行(以 dmdba 用户操作)
从 DM 安装目录拷贝二进制文件到工作目录
cp -r /home/dmdba/dmdbms/bin/* /home/dmdba/dmdsc/bin/

九、集群配置文件

9.1 创建 DMDCR_CFG.INI
仅在 DSC01 机器执行(以 dmdba 用户操作)
vi /home/dmdba/dmdsc/data/DSC01/DMDCR_CFG.INI

DCR_N_GRP= 3
DCR_VTD_PATH=/dev_DSC2/VOTE
DCR_OGUID= 1071107589

[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT =60

[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.21.133
DCR_EP_PORT = 9836

[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.21.134
DCR_EP_PORT = 9837

[GRP]
DCR_GRP_TYPE= ASM
DCR_GRP_NAME= GRP_ASM
DCR_GRP_N_EP= 2
DCR_GRP_DSKCHK_CNT= 60

[GRP_ASM]
DCR_EP_NAME= ASM0
DCR_EP_SHM_KEY= 64735
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 192.168.21.133
DCR_EP_PORT= 5836
DCR_EP_ASM_LOAD_PATH= /dev_DSC2

[GRP_ASM]
DCR_EP_NAME= ASM1
DCR_EP_SHM_KEY= 54736
DCR_EP_SHM_SIZE= 512
DCR_EP_HOST= 192.168.21.134
DCR_EP_PORT= 5837
DCR_EP_ASM_LOAD_PATH= /dev_DSC2

[GRP]
DCR_GRP_TYPE= DB
DCR_GRP_NAME= GRP_DSC
DCR_GRP_N_EP= 2
DCR_GRP_DSKCHK_CNT= 60

[GRP_DSC]
DCR_EP_NAME= DSC01
DCR_EP_SEQNO= 0
DCR_EP_PORT= 6636

[GRP_DSC]
DCR_EP_NAME= DSC02
DCR_EP_SEQNO= 1
DCR_EP_PORT= 6637

9.2 初始化共享磁盘
仅在 DSC01 机器执行(以 dmdba 用户操作)image.png
9.3 创建 DMASVRMAL.INI
两台机器内容完全相同(以 dmdba 用户操作)
DSC01 机器:
vi /home/dmdba/dmdsc/data/DSC01/dmasvrmal.ini
DSC02 机器:
Vi /home/dmdba/dmdsc/data/DSC02/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME= ASM0
MAL_HOST= 192.168.21.133
MAL_PORT= 4836

[MAL_INST2]
MAL_INST_NAME= ASM1
MAL_HOST= 192.168.21.134
MAL_PORT= 483

9.4 创建 DMDCR.INI
DSC01 机器:image.png
DSC02 机器:image.png

十、启动 CSS 和 ASM 服务

10.1 启动 DMCSS
DSC01 机器(以 dmdba 用户操作):image.png
DSC02 机器(以 dmdba 用户操作):image.png
10.2 启动 DMASMSVR
DSC01 机器(以 dmdba 用户操作,新终端):image.png
DSC02 机器(以 dmdba 用户操作,新终端):image.png

十一、创建 ASM 磁盘组

仅在 DSC01 机器执行(以 dmdba 用户操作)image.png

十二、初始化数据库

12.1 创建 dminit.ini
仅在 133 机器执行(以 dmdba 用户操作)
vi /home/dmdba/dmdsc/data/DSC01/dminit.ini

DB_NAME= dsc2
SYSTEM_PATH= +DMDATA/data
SYSTEM= +DMDATA/data/dsc2/system.dbf
SYSTEM_SIZE= 128
ROLL= +DMDATA/data/dsc2/roll.dbf
ROLL_SIZE= 128
MAIN= +DMDATA/data/dsc2/main.dbf
MAIN_SIZE= 128
CTL_PATH= +DMDATA/data/dsc2/dm.ctl
LOG_SIZE= 2048
DCR_PATH= /dev_DSC2/DCR
DCR_SEQNO= 0
AUTO_OVERWRITE= 2
PAGE_SIZE = 16
EXTENT_SIZE = 16
SYSDBA_PWD=DMdba_123
SYSAUDITOR_PWD=DMauditor_123
[DSC01]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC01/DSC01_conf
PORT_NUM = 6636
MAL_HOST= 192.168.21.133
MAL_PORT= 6536
LOG_PATH= +DMLOG/log/DSC01_log1.log
LOG_PATH= +DMLOG/log/DSC01_log2.log

[DSC02]
CONFIG_PATH= /home/dmdba/dmdsc/data/DSC02/DSC02_conf
PORT_NUM = 6637
MAL_HOST= 192.168.21.134
MAL_PORT= 6537
LOG_PATH= +DMLOG/log/DSC02_log1.log
LOG_PATH= +DMLOG/log/DSC02_log2.log
12.2 执行初始化image.png
12.3 复制配置文件到 DSC02 机器image.png

十三、启动数据库服务器

DSC01 机器(以 dmdba 用户操作):
cd /home/dmdba/dmdsc/bin
./dmserver dcr_ini=/home/dmdba/dmdsc/data/DSC01/dmdcr.ini /home/dmdba/dmdsc/data/DSC01/DSC01_conf/dm.iniimage.png
DSC02 机器(以 dmdba 用户操作):image.png

十四、配置并启动 DMCSSM 监视器

仅在 DSC01 机器执行(以 dmdba 用户操作)
在监视器提示符下输入show:
show
预期输出显示三个组(GRP_CSS、GRP_ASM、GRP_DSC)所有节点状态均为OPEN和WORKING。image.png
至此,DMDSC 已经搭建完成。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服