单机部署的 DSC 共享存储集群,在同一台服务器启动多个达梦实例,多个实例共用一套共享存储设备,通过裸设备 / 共享磁盘访问相同数据文件。各实例独立运行、内存互相通信,可同时对外提供数据库服务。
操作系统:CentOS Linux 7;
数据库软件:达梦数据库DM8;
CPU架构:x86_64。
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
使用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/
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
使用 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退出。
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
需要开启 4 个终端窗口,分别启动CSS0、CSS1、ASM0、ASM1。
启动顺序:先启动两个CSS,等待5秒后再启动两个ASM。
窗口 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
/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
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
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,即启动成功。
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)
连接 DSC0
/dm/dmdbms/bin/disql SYSDBA/Dameng123@192.168.200.71:5236
SQL> SELECT NAME, INSTANCE_NAME, HOST_NAME, STATUS$ FROM VINSTANCE;

连接 DSC1
/dm/dmdbms/bin/disql SYSDBA/Dameng123@192.168.200.71:5237
SQL> SELECT NAME, INSTANCE_NAME, HOST_NAME, STATUS FROM V$INSTANCE;
通过dmcssm监视器查看集群各组件的运行状态:
/dm/dmdbms/bin/dmcssm INI_PATH=/dm/dmdbms/bin/dmcssm.ini
文章
阅读量
获赞
