在企业级数据库应用中,高可用性是保障业务连续性的关键。达梦数据库共享存储集群(DMDSC)通过双节点架构与共享存储结合,能有效实现数据同步与故障切换,为业务稳定运行保驾护航。本文将聚焦DMDSC部署的核心环节——VMware共享存储配置与磁盘、DCR关键配置,带您快速掌握集群搭建的核心技术要点。
共享存储是DMDSC集群的核心基础,需通过VMware创建5类专用磁盘(数据、DCR、vote、redo日志、归档日志),并确保双节点(dsc1、dsc2)可正常访问。
首先需在Windows主机的VMware安装目录下创建共享磁盘存放目录,避免后续出现“文件未找到”错误。通过CMD命令行执行以下操作:
mkdir -p D:\apps\vmware\dsc1\sharedisk
关键步骤:右键VMware安装目录,进入“属性-安全-编辑”,添加“Everyone”用户并设置“完全控制”权限,确保VMware对目录拥有完整操作权限。
使用VMware自带的vmware-vdiskmanager.exe
工具创建磁盘,类型指定为“-t 2”(预分配厚置备),确保磁盘性能稳定。需创建的5块磁盘及对应命令如下:
.\vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-data0.vmdk"
.\vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-dcr.vmdk"
.\vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-vote.vmdk"
.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-log0.vmdk"
.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\apps\vmware\dsc1\sharedisk\share-arch0.vmdk"
执行命令后,可在目标目录查看生成的磁盘文件(如share-data0.vmdk
及对应的share-data0-flat.vmdk
),确认磁盘创建成功。
关闭dsc1和dsc2虚拟机,编辑两者的vmx文件,在末尾添加共享磁盘配置参数,核心是关闭磁盘锁定(disk.locking = "FALSE"
)并指定磁盘路径,示例如下:
shared disks configure
diskLib.dataCacheMaxSize=0
diskLib.dataCacheMaxReadAheadSize=0
diskLib.dataCacheMinReadAheadSize=0
diskLib.dataCachePageSize=4096
diskLib.maxUnsyncedWrites = "0"
disk.locking = "FALSE"
scsi1.sharedBus = "virtual"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1:0.mode = "independent-persistent"
scsi1:0.deviceType = "disk"
scsi1:0.present = "TRUE"
scsi1:0.fileName = "D:\apps\vmware\dsc1\sharedisk\share-data0.vmdk"
scsi1:0.redo = ""
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "disk"
scsi1:1.present = "TRUE"
scsi1:1.fileName = "D:\apps\vmware\dsc1\sharedisk\share-dcr.vmdk"
scsi1:1.redo = ""
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "disk"
scsi1:2.present = "TRUE"
scsi1:2.fileName = "D:\apps\vmware\dsc1\sharedisk\share-vote.vmdk"
scsi1:2.redo = ""
scsi1:3.mode = "independent-persistent"
scsi1:3.deviceType = "disk"
scsi1:3.present = "TRUE"
scsi1:3.fileName = "D:\apps\vmware\dsc1\sharedisk\share-log0.vmdk"
scsi1:3.redo = ""
scsi1:4.mode = "independent-persistent"
scsi1:4.deviceType = "disk"
scsi1:4.present = "TRUE"
scsi1:4.fileName = "D:\apps\vmware\dsc1\sharedisk\share-arch0.vmdk"
scsi1:4.redo = ""
配置完成后启动虚拟机,进入“编辑虚拟机设置”,可看到新增的5块共享磁盘(容量分别为10G、5G、5G、10G、10G),此时VMware共享存储配置完成。
完成共享存储搭建后,需通过udev规则绑定磁盘、创建DCR配置文件并初始化磁盘组,为DMDSC集群提供统一的磁盘标识与基础运行配置。
udev规则绑定依赖磁盘唯一标识scsi_id,双节点同一共享磁盘的scsi_id必须一致,否则绑定失败。在双节点执行以下命令获取各磁盘scsi_id(示例结果仅供参考):
/usr/lib/udev/scsi_id -g -u /dev/sdb # 数据磁盘,返回36000c2955ddd4a42ef78fedac4991d76
/usr/lib/udev/scsi_id -g -u /dev/sdc # DCR磁盘,返回36000c2931e189c5b98ee136faf7d33c9
/usr/lib/udev/scsi_id -g -u /dev/sdd # vote磁盘,返回36000c298414bcad0619ba181dd8ebe74
/usr/lib/udev/scsi_id -g -u /dev/sde # redo日志磁盘,返回36000c2949f5014f3437e6c563abf2bd2
/usr/lib/udev/scsi_id -g -u /dev/sdf # 归档日志磁盘,返回36000c29438789543cb1a27d3071d0314
记录各磁盘scsi_id,后续用于udev规则配置。
创建udev规则文件/etc/udev/rules.d/99-dm-asmdevices.rules
,为每块磁盘配置符号链接、所有者(dmdba)与权限(0660),确保达梦进程可正常访问。规则示例如下:
## DCR磁盘配置,磁盘scsi_id需要和环境规划一致
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2931e189c5b98ee136faf7d33c9",SYMLINK+="DCR", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;mkdir -p /dev_DSC; ln -s /dev/DCR /dev_DSC/DCR'"
VOTE 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c298414bcad0619ba181dd8ebe74",SYMLINK+="VOTE", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/VOTE /dev_DSC/VOTE'"
DMDATA 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2955ddd4a42ef78fedac4991d76",SYMLINK+="DMDATA", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMDATA /dev_DSC/DMDATA'"
DMLOG 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2949f5014f3437e6c563abf2bd2",SYMLINK+="DMLOG", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMLOG /dev_DSC/DMLOG ; chown -R dmdba:dmdba /dev_DSC '"
执行udevadm control --reload-rules && udevadm trigger
使规则生效,通过ls -lth /dev_DSC
可查看生成的磁盘链接(如DCR、VOTE、DMDATA等),确认配置成功。
切换至dmdba用户,在/home/dmdba/config
目录下创建dmdcr_cfg.ini
,配置集群组(CSS、ASM、DB)、节点IP与端口、磁盘路径等核心参数,关键配置如下:
DCR_N_GRP = 3 # 集群组数量
DCR_VTD_PATH = /dev_DSC/VOTE # vote磁盘路径
DCR_OGUID = 63635 # 集群唯一OGUID
# CSS组配置(集群管理服务)
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2 # 节点数量
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.226.132 # 节点1IP
DCR_EP_PORT = 9836 # CSS端口
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.226.133 # 节点2IP
DCR_EP_PORT = 9837
# ASM组配置(存储管理服务)
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_HOST = 192.168.226.132
DCR_EP_PORT = 5836
DCR_EP_ASM_LOAD_PATH = /dev_DSC # ASM磁盘加载路径
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_HOST = 192.168.226.133
DCR_EP_PORT = 5837
# DB组配置(数据库实例)
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
[GRP_DSC]
DCR_EP_NAME = DSC01
DCR_EP_PORT = 5236 # 数据库端口
[GRP_DSC]
DCR_EP_NAME = DSC02
DCR_EP_PORT = 5236
在节点1的/home/dmdba/dmdbms/bin
目录下启动dmasmcmd
工具,执行磁盘初始化命令,将DCR配置写入磁盘:
# 创建磁盘标识
create dcrdisk '/dev_DSC/DCR' 'DCR'
create votedisk '/dev_DSC/VOTE' 'VOTE'
create asmdisk '/dev_DSC/DMDATA' 'DMDATA'
create asmdisk '/dev_DSC/DMLOG' 'DMLOG'
# 初始化DCR与vote磁盘
init dcrdisk '/dev_DSC/DCR' from '/home/dmdba/config/dmdcr_cfg.ini' identified by 'Dm123456789'
init votedisk '/dev_DSC/VOTE' from '/home/dmdba/config/dmdcr_cfg.ini'
初始化完成后,磁盘组将按照配置文件参数运行,为后续ASM服务与数据库实例启动奠定基础。
创建/home/dmdba/config/dmasvrmal.ini
,配置ASM节点间通信信息:
[MAL_INST1]
MAL_INST_NAME= ASM0
MAL_HOST= 192.168.226.132
MAL_PORT= 4836
[MAL_INST2]
MAL_INST_NAME= ASM1
MAL_HOST= 192.168.226.133
MAL_PORT= 4837
创建/home/dmdba/config/dmdcr.ini
,指定DCR磁盘路径、MAL配置路径与服务启动命令。节点1配置如下(节点2仅需将DMDCR_SEQNO
改为1):
DMDCR_PATH = /dev_DSC/DCR
DMDCR_MAL_PATH = /home/dmdba/config/dmasvrmal.ini
DMDCR_SEQNO = 0 # 节点序号,节点1为0,节点2为1
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/config/DSC01_conf/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
在双节点的bin
目录下分别启动DMCSS(集群管理服务)与DMASM(存储服务):
# 启动DMCSS
./dmcss DCR_INI=/home/dmdba/config/dmdcr.ini
# 启动DMASM
./dmasmsvr DCR_INI=/home/dmdba/config/dmdcr.ini
启动成功后,节点1将成为ASM控制节点,双节点服务状态显示为“READY”,标志着DMDSC集群核心服务已正常运行。
本文通过VMware共享存储配置、磁盘udev绑定、DCR参数设置三大核心环节,完成了达梦DMDSC集群的基础搭建。共享存储为双节点提供了统一的数据交互载体,而DCR配置则构建了集群的“神经中枢”,确保服务协同与故障切换能力。
在实际应用中,可基于此基础进一步优化集群性能,例如调整ASM磁盘组冗余策略、配置数据库实例自动重启、搭建监视器实现集群状态实时监控等。达梦DMDSC集群凭借高可用、易扩展的特性,已广泛应用于金融、政务、能源等关键行业,为业务系统提供稳定可靠的数据支撑。
后续我们还将围绕DMDSC集群的故障切换测试、性能调优、日常运维等主题展开深入分享,助力大家更全面地掌握达梦数据库高可用技术,敬请关注!
文章
阅读量
获赞