注册
达梦数据库DM8共享存储集群单机部署
技术分享/ 文章详情 /

达梦数据库DM8共享存储集群单机部署

🌊Amaharashi 2026/07/31 148 0 0

单机部署的 DSC 共享存储集群,在同一台服务器启动多个达梦实例,多个实例共用一套共享存储设备,通过裸设备 / 共享磁盘访问相同数据文件。各实例独立运行、内存互相通信,可同时对外提供数据库服务。

实验环境

操作系统:CentOS Linux 7;
数据库软件:达梦数据库DM8;
CPU架构:x86_64。

集群组件规划

端口规划

image.png

共享存储规划

image.png

安装流程

环境部署

创建用户和目录

groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
mkdir -p /dm/{dmdbms,dmbak,dmsqllog,core}
mkdir -p /dm/dmdbms/dsc_config/{DSC0,DSC1}
chown -R dmdba:dinstall /dm

安装流程

环境部署

创建用户和目录

groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
mkdir -p /dm/{dmdbms,dmbak,dmsqllog,core}
mkdir -p /dm/dmdbms/dsc_config/{DSC0,DSC1}
chown -R dmdba:dinstall /dm
image.png

创建共享存储

使用dd创建磁盘文件并用 losetup 绑定为块设备。
dd if=/dev/zero of=/dm/disk_vote bs=1M count=200
dd if=/dev/zero of=/dm/disk_dcr bs=1M count=200
dd if=/dev/zero of=/dm/disk_log bs=1M count=2048
dd if=/dev/zero of=/dm/disk_data bs=1M count=10240
dd if=/dev/zero of=/dm/disk_arch bs=1M count=5120

losetup /dev/loop0 /dm/disk_vote
losetup /dev/loop1 /dm/disk_dcr
losetup /dev/loop2 /dm/disk_log
losetup /dev/loop3 /dm/disk_data
losetup /dev/loop4 /dm/disk_arch

ln -sf /dev/loop0 /dev/dm/asm-dmvote
ln -sf /dev/loop1 /dev/dm/asm-dmdcr
ln -sf /dev/loop2 /dev/dm/asm-dmlog
ln -sf /dev/loop3 /dev/dm/asm-dmdata
ln -sf /dev/loop4 /dev/dm/asm-dmarch
chown -R dmdba:dinstall /dev/dm/
image.png
image.png
image.png

配置dmdcr_cfg.ini

dmdcr_cfg.ini 是集群核心配置文件,定义CSS/ASM/DB三个组的节点信息。
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/dm/asm-dmvote
DCR_OGUID = 210715
[GRP] DCR_GRP_TYPE = CSS … # CSS0:11286 CSS1:11287
[GRP] DCR_GRP_TYPE = ASM … # ASM0:11276 ASM1:11277
[GRP] DCR_GRP_TYPE = DB … # DSC0:5236 DSC1:5237
image.png

初始化磁盘

使用 dmasmcmd 工具初始化 DCR 盘、VOTE 盘和 ASM 数据盘:
/dm/dmdbms/bin/dmasmcmd
create dcrdisk ‘/dev/dm/asm-dmdcr’ ‘dcr’
create votedisk ‘/dev/dm/asm-dmvote’ ‘vote’
init dcrdisk ‘/dev/dm/asm-dmdcr’ from ‘…dmdcr_cfg.ini’ identified by ‘xxx’
init votedisk ‘/dev/dm/asm-dmvote’ from ‘…dmdcr_cfg.ini’
create asmdisk ‘/dev/dm/asm-dmdata’ ‘DATA0’
create asmdisk ‘/dev/dm/asm-dmlog’ ‘LOG0’
create asmdisk ‘/dev/dm/asm-dmarch’ ‘ARCH0’
分别执行后exit退出。
image.png

配置DMASM MAL通信文件

dmasvrmal.ini定义ASM实例间的MAL通信地址:
dmasvrmal.ini
[MAL_INST0] MAL_INST_NAME=ASM0 MAL_HOST=192.168.200.71 MAL_PORT=11266
[MAL_INST1] MAL_INST_NAME=ASM1 MAL_HOST=192.168.200.71 MAL_PORT=11267
image.png

启动服务

需要开启 4 个终端窗口,分别启动CSS0、CSS1、ASM0、ASM1。
启动顺序:先启动两个CSS,等待5秒后再启动两个ASM。
image.png
image.png
窗口 A: DSC0-CSS
su - dmdba && ulimit -n 65536
/dm/dmdbms/bin/dmcss DCR_INI=/dm/dmdbms/dsc_config/DSC0/dmdcr.ini
窗口 B: DSC1-CSS
su - dmdba && ulimit -n 65536
/dm/dmdbms/bin/dmcss DCR_INI=/dm/dmdbms/dsc_config/DSC1/dmdcr.ini
窗口 C: DSC0-ASM
/dm/dmdbms/bin/dmasmsvr DCR_INI=/dm/dmdbms/dsc_config/DSC0/dmdcr.ini
窗口 D: DSC1-ASM
/dm/dmdbms/bin/dmasmsvr DCR_INI=/dm/dmdbms/dsc_config/DSC1/dmdcr.ini

创建ASM磁盘组

/dm/dmdbms/bin/dmasmtool DCR_INI=/dm/dmdbms/dsc_config/DSC0/dmdcr.ini
create diskgroup ‘DMLOG’ asmdisk ‘/dev/dm/asm-dmlog’
create diskgroup ‘DMDATA’ asmdisk ‘/dev/dm/asm-dmdata’
create diskgroup ‘DMARCH’ asmdisk '/dev/dm/asm-dmarch
image.png

数据库实例配置

初始化实例

dminit.ini
DB_NAME=DSC SYSDBA_PWD=Dameng123
PAGE_SIZE=32 EXTENT_SIZE=16 BLANK_PAD_MODE=1
LOG_SIZE=256

执行初始化

/dm/dmdbms/bin/dminit control=/dm/dmdbms/dsc_config/dminit.ini
image.png

启动数据库实例

DSC0
/dm/dmdbms/bin/dmserver /dm/dmdbms/dsc_config/DSC0/dm.ini
dcr_ini=/dm/dmdbms/dsc_config/DSC0/dmdcr.ini
DSC1
/dm/dmdbms/bin/dmserver /dm/dmdbms/dsc_config/DSC1/dm.ini
dcr_ini=/dm/dmdbms/dsc_config/DSC1/dmdcr.ini
等待SYSTEM IS READY,即启动成功。
image.png

注册系统服务

root 执行,注册后可通过 systemctl 管理
/dm/dmdbms/script/root/dm_service_installer.sh
-t dmcss -dcr_ini …/DSC0/dmdcr.ini -p CSS0
/dm/dmdbms/script/root/dm_service_installer.sh
-t dmasmsvr -dcr_ini …/DSC0/dmdcr.ini
-y DmCSSServiceCSS0.service -p ASM0
/dm/dmdbms/script/root/dm_service_installer.sh
-t dmserver -dm_ini …/DSC0/dm.ini
-dcr_ini …/DSC0/dmdcr.ini -y DmASMSvrServiceASM0.service -p DSC0
DSC1 同理(CSS1/ASM1/DSC1)
image.png

集群验证

数据库连接验证

连接 DSC0
/dm/dmdbms/bin/disql SYSDBA/Dameng123@192.168.200.71:5236
SQL> SELECT NAME, INSTANCE_NAME, HOST_NAME, STATUS$ FROM VINSTANCE; ![image.png](https://download.dameng.com/eco-file-server/file/eco/preview/202607281125428BUBC3C63TN4D8WGQM) 连接 DSC1 /dm/dmdbms/bin/disql SYSDBA/Dameng123@192.168.200.71:5237 SQL> SELECT NAME, INSTANCE_NAME, HOST_NAME, STATUS FROM V$INSTANCE;
image.png

监视器状态验证

通过dmcssm监视器查看集群各组件的运行状态:
/dm/dmdbms/bin/dmcssm INI_PATH=/dm/dmdbms/bin/dmcssm.ini
image.png
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服