注册
DM8共享磁盘集群(3节点)搭建记录
技术分享/ 文章详情 /

DM8共享磁盘集群(3节点)搭建记录

Phi Sagittarii Merak 2026/06/18 370 0 0

虚拟机开启磁盘uuid显示

在虚拟机配置文件中添加参数disk.EnableUUID = “TRUE”

创建共享磁盘

.\vmware-vdiskmanager.exe -c -s 1g -a lsilogic -t 2 D:\VMware\DSC\dcr_disk1.vmdk
.\vmware-vdiskmanager.exe -c -s 1g -a lsilogic -t 2 D:\VMware\DSC\vote_disk1.vmdk
.\vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 D:\VMware\DSC\dmdata_disk1.vmdk
.\vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 D:\VMware\DSC\dmlog_disk1.vmdk

配置虚拟机共享磁盘参数

关闭虚拟机,在配置文件添加以下参数。添加完成后重启虚拟机

disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.maxUnsyncedWrites = "0"

scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsil.sharedBus = "VIRTUAL"
scsi1:0.present = "TRUE"
scsi1:0.mode = "independent-persistent"
scsi1:0.fileName = "D:\VMware\DSC\dcr_disk1.vmdk"
scsi1:0.deviceType = "disk"
scsi1:0.redo = ""

scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.fileName = "D:\VMware\DSC\vote_disk1.vmdk"
scsi1:1.deviceType = "disk"
scsi1:1.redo = ""

scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.fileName = "D:\VMware\DSC\dmdata_disk1.vmdk"
scsi1:2.deviceType = "disk"
scsi1:2.redo = ""

scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.fileName = "D:\VMware\DSC\dmlog_disk1.vmdk"
scsi1:3.deviceType = "disk"
scsi1:3.redo = ""

获取共享磁盘UUID

for i in `cat /proc/partitions | awk '{print $4}' |grep sd | grep [b-z]$`; do echo "### $i: `/usr/lib/udev/scsi_id -g -u -d /dev/$i`"; done

image.png

创建规则文件

vim /etc/udev/rules.d/66-dmdevices.rules

KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29ec7411cc843e19b048194b6b0", SYMLINK+="DCR",OWNER="dmdba", GROUP="dinstall",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name;ln -s /dev/DCR /dev_dmdsc/DCR'"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29aa50547c6140bd93926dcb0b6", SYMLINK+="VOTE",OWNER="dmdba", GROUP="dinstall",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name;ln -s /dev/VOTE /dev_dmdsc/VOTE'"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c290335567e2f0fcd402def69836", SYMLINK+="DMDATA",OWNER="dmdba", GROUP="dinstall",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name;ln -s /dev/DMDATA /dev_dmdsc/DMDATA'"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29f6fe2a7fe4fb8dd380493b1c6", SYMLINK+="DMLOG",OWNER="dmdba", GROUP="dinstall",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name;ln -s /dev/DMLOG /dev_dmdsc/DMLOG'"

udev规则生效

systemctl restart systemd-udev-trigger
ls -lth /dev_dmdsc
blockdev --getsize64 /dev_dmdsc/*

image.png

配置集群全局信息文件

vim /dmdata/config/dmdcr_cfg.ini

  DCR_N_GRP                = 3                    #集群环境有多少个GROUP,范围:1~16
  DCR_VTD_PATH             = /dev_dmdsc/VOTE      #vote
  DCR_OGUID                = 63635

[GRP]
  DCR_GRP_TYPE             = CSS                  #组类型(CSS/ASM/DB)
  DCR_GRP_NAME             = GRP_CSS              #组名
  DCR_GRP_N_EP             = 3                    #组内节点个数
  DCR_GRP_DSKCHK_CNT       = 60                   #磁盘心跳容错时间,单位:秒
[GRP_CSS]
  DCR_EP_NAME              = CSS1                 #CSS节点名
  DCR_EP_HOST              = 192.168.43.130           #心跳地址
  DCR_EP_PORT              = 11286                #CSS端口
[GRP_CSS]
  DCR_EP_NAME              = CSS2
  DCR_EP_HOST              = 192.168.43.131
  DCR_EP_PORT              = 11287
[GRP_CSS]
  DCR_EP_NAME              = CSS3
  DCR_EP_HOST              = 192.168.43.132
  DCR_EP_PORT              = 11288

[GRP]
  DCR_GRP_TYPE = ASM
  DCR_GRP_NAME = GRP_ASM
  DCR_GRP_N_EP = 3
  DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
  DCR_EP_NAME              = ASM1                 #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
  DCR_EP_SHM_KEY           = 64735                #共享内存标识
  DCR_EP_SHM_SIZE          = 1024                 #共享内存大小
  DCR_EP_HOST              = 192.168.43.130           #心跳地址
  DCR_EP_PORT              = 11276                #ASM端口
  DCR_EP_ASM_LOAD_PATH     = /dev_dmdsc
[GRP_ASM]
  DCR_EP_NAME              = ASM2
  DCR_EP_SHM_KEY           = 64736
  DCR_EP_SHM_SIZE          = 1024
  DCR_EP_HOST              = 192.168.43.131
  DCR_EP_PORT              = 11277
  DCR_EP_ASM_LOAD_PATH     = /dev_dmdsc
[GRP_ASM]
  DCR_EP_NAME              = ASM3
  DCR_EP_SHM_KEY           = 64737
  DCR_EP_SHM_SIZE          = 1024
  DCR_EP_HOST              = 192.168.43.132
  DCR_EP_PORT              = 11278
  DCR_EP_ASM_LOAD_PATH     = /dev_dmdsc  

[GRP]
  DCR_GRP_TYPE             = DB
  DCR_GRP_NAME             = GRP_DSC
  DCR_GRP_N_EP             = 3
  DCR_GRP_DSKCHK_CNT       = 60
[GRP_DSC]
  DCR_EP_NAME              = DSC1                  #实例名,和dm.ini的INSTANCE_NAME一致
  DCR_EP_SEQNO             = 0                     #组内序号,不能重复
  DCR_EP_PORT              = 5236                  #实例端口,和dm.ini的PORT_NUM一致
  DCR_CHECK_PORT           = 11266                 #DCR检查端口
[GRP_DSC]
  DCR_EP_NAME              = DSC2
  DCR_EP_SEQNO             = 1
  DCR_EP_PORT              = 5236
  DCR_CHECK_PORT           = 11267
[GRP_DSC]
  DCR_EP_NAME              = DSC3
  DCR_EP_SEQNO             = 2
  DCR_EP_PORT              = 5236
  DCR_CHECK_PORT           = 11268

创建ASM磁盘

/home/dmdba/dmdbms/bin/dmasmcmd
create dcrdisk '/dev_dmdsc/DCR' 'DCR'
create votedisk '/dev_dmdsc/VOTE' 'VOTE'
create asmdisk '/dev_dmdsc/DMDATA' 'DMDATA'
create asmdisk '/dev_dmdsc/DMLOG' 'DMLOG'
init dcrdisk '/dev_dmdsc/DCR' from '/dmdata/config/dmdcr_cfg.ini' identified by 'Dameng123'
init votedisk '/dev_dmdsc/VOTE' from '/dmdata/config/dmdcr_cfg.ini'

image.png

配置ASM的MAL系统文件

vim /dmdata/config/dmasvrmal.ini

[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.43.130
MAL_PORT = 11256
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 192.168.43.131
MAL_PORT = 11257
[MAL_INST3]
MAL_INST_NAME = ASM3
MAL_HOST = 192.168.43.132
MAL_PORT = 11258

配置DMDCR文件

vim /dmdata/config/dmdcr.ini

#节点一
DMDCR_PATH = /dev_dmdsc/DCR             #dcr
DMDCR_MAL_PATH =/dmdata/config/dmasvrmal.ini   #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0

# ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 30
# 初次搭建环境时,取消该参数,需要手动运行ASM服务,后面搭建无误后,在使该参数生效
# DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/dmdata/config/dmdcr.ini

# DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60
# 初次搭建环境时,取消该参数,需要手动运行DB服务,后面搭建无误后,在使该参数生效
# DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/dmdata/data/DSC1/dm.ini dcr_ini=/dmdata/config/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK = 60
DMDCR_ASM_TRACE_LEVEL = 2

#节点二
DMDCR_PATH = /dev_dmdsc/DCR
DMDCR_MAL_PATH =/dmdata/config/dmasvrmal.ini
DMDCR_SEQNO = 1

# ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 30
# 初次搭建环境时,取消该参数,需要手动运行ASM服务,后面搭建无误后,在使该参数生效
# DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/dmdata/config/dmdcr.ini

# DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60
# 初次搭建环境时,取消该参数,需要手动运行DB服务,后面搭建无误后,在使该参数生效
# DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/dmdata/data/DSC2/dm.ini dcr_ini=/dmdata/config/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK = 60
DMDCR_ASM_TRACE_LEVEL = 2

#节点三
DMDCR_PATH = /dev_dmdsc/DCR
DMDCR_MAL_PATH =/dmdata/config/dmasvrmal.ini
DMDCR_SEQNO = 2

# ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 30
# 初次搭建环境时,取消该参数,需要手动运行ASM服务,后面搭建无误后,在使该参数生效
# DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/dmdata/config/dmdcr.ini  

# DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60  
# 初次搭建环境时,取消该参数,需要手动运行DB服务,后面搭建无误后,在使该参数生效
# DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/dmdata/data/DSC3/dm.ini dcr_ini=/dmdata/config/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK = 60
DMDCR_ASM_TRACE_LEVEL = 2   

启动ASM相关服务

/home/dmdba/dmdbms/bin/dmcss DCR_INI=/dmdata/config/dmdcr.ini

/home/dmdba/dmdbms/bin/dmasmsvr DCR_INI=/dmdata/config/dmdcr.ini

创建DMASM磁盘组

/home/dmdba/dmdbms/bin/dmasmtool DCR_INI=/dmdata/config/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev_dmdsc/DMLOG'  
create diskgroup 'DMDATA' asmdisk '/dev_dmdsc/DMDATA'

创建数据库初始化配置文件

vim /dmdata/config/dminit.ini

  db_name                  = DSC
  system_path              = +DMDATA/data
  system                   = +DMDATA/data/dsc/system.dbf
  system_size              = 128
  main                     = +DMDATA/data/dsc/main.dbf
  main_size                = 128
  roll                     = +DMDATA/data/dsc/roll.dbf
  roll_size                = 128
  ctl_path                 = +DMDATA/data/dsc/dm.ctl
  ctl_size                 = 8
  log_size                 = 2048
  dcr_path                 = /dev_dmdsc/DCR
  dcr_seqno                = 0
  auto_overwrite           = 1
  PAGE_SIZE                = 32
  EXTENT_SIZE              = 32
  CASE_SENSITIVE           = 0
  BLANK_PAD_MODE           = 1
  CHARSET                  = 1
  SYSDBA_PWD               = Dameng123
  SYSAUDITOR_PWD           = Dameng123

[DSC1]
  config_path              = /dmdata/data/dsc1
  port_num                 = 5236
  mal_host                 = 192.168.43.130
  mal_port                 = 11246
  log_path                 = +DMLOG/log/dsc1_log01.log
  log_path                 = +DMLOG/log/dsc1_log02.log 
[DSC2]
  config_path              = /dmdata/data/dsc2
  port_num                 = 5236
  mal_host                 = 192.168.43.131
  mal_port                 = 11247
  log_path                 = +DMLOG/log/dsc2_log01.log
  log_path                 = +DMLOG/log/dsc2_log02.log
[DSC3]
  config_path              = /dmdata/data/dsc3
  port_num                 = 5236
  mal_host                 = 192.168.43.132
  mal_port                 = 11248
  log_path                 = +DMLOG/log/dsc3_log01.log
  log_path                 = +DMLOG/log/dsc3_log02.log

初始化节点

/home/dmdba/dmdbms/bin/dminit control=/dmdata/config/dminit.ini
image.png

传输配置文件至备库,并开启归档

#传输配置文件至备库
scp -r /dmdata/data/dsc2/ 192.168.43.131:/dmdata/data

scp -r /dmdata/data/dsc3/ 192.168.43.132:/dmdata/data

#开启归档模式(所有节点进行)
vi /dmdata/data/dsc1/dm.ini

vi /dmdata/data/dsc2/dm.ini

vi /dmdata/data/dsc3/dm.ini

ARCH_INI = 1

配置归档文件

vi /dmdata/data/dsc1/dmarch.ini

ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/ARCH/DSC1/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC2/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC3
ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC3/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

vi /dmdata/data/dsc2/dmarch.ini

ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/ARCH/DSC2/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC1/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC3
ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC3/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

vi /dmdata/data/dsc3/dmarch.ini

ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK=0

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/ARCH/DSC3/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC1/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC2
ARCH_INCOMING_PATH = +DMDATA/ARCH/DSC2/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32

启动数据库实例

/home/dmdba/dmdbms/bin/dmserver /dmdata/data/dsc1/dm.ini dcr_ini=/dmdata/config/dmdcr.ini

/home/dmdba/dmdbms/bin/dmserver /dmdata/data/dsc2/dm.ini dcr_ini=/dmdata/config/dmdcr.ini

/home/dmdba/dmdbms/bin/dmserver /dmdata/data/dsc3/dm.ini dcr_ini=/dmdata/config/dmdcr.ini

创建监视器并查看集群状态

vim /dmdata/config/cssm.ini

CSSM_OGUID = 63635
CSSM_CSS_IP = 192.168.43.130:11286
CSSM_CSS_IP = 192.168.43.131:11287
CSSM_CSS_IP = 192.168.43.131:11288
CSSM_LOG_PATH = /dmdata/log
CSSM_LOG_FILE_SIZE = 1024
CSSM_LOG_SPACE_LIMIT = 0

/home/dmdba/dmdbms/bin/dmcssm ini_path=/dmdata/config/cssm.ini

image.png

达梦社区技术https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服