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等节点号必须与之前在图形界面中设置的完全一致。保存并关闭文件
两台机器均需执行(以 root 用户操作)
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
两台机器均需执行(以 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 用户操作)
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 机器:
DSC02 机器:
10.1 启动 DMCSS
DSC01 机器(以 dmdba 用户操作):
DSC02 机器(以 dmdba 用户操作):
10.2 启动 DMASMSVR
DSC01 机器(以 dmdba 用户操作,新终端):
DSC02 机器(以 dmdba 用户操作,新终端):
仅在 DSC01 机器执行(以 dmdba 用户操作)
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 执行初始化
12.3 复制配置文件到 DSC02 机器
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.ini
DSC02 机器(以 dmdba 用户操作):
仅在 DSC01 机器执行(以 dmdba 用户操作)
在监视器提示符下输入show:
show
预期输出显示三个组(GRP_CSS、GRP_ASM、GRP_DSC)所有节点状态均为OPEN和WORKING。
至此,DMDSC 已经搭建完成。
文章
阅读量
获赞
