1. 磁盘固定(UDEV)
1.1 创建 udev 规则文件
# 切换到 root 用户su- root# 创建 udev 规则文件vi/etc/udev/rules.d/66-dmdevices.rules添加以下内容:
## DCR 磁盘配置 (vdb)KERNEL=="vdb",SUBSYSTEM=="block",OWNER="dmdba",GROUP="dinstall",MODE="0660",SYMLINK+="DCR",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/vdb; mkdir -p /dev_DSC2; ln -sf /dev/DCR /dev_DSC2/DCR'"## VOTE 磁盘配置 (vdc)KERNEL=="vdc",SUBSYSTEM=="block",OWNER="dmdba",GROUP="dinstall",MODE="0660",SYMLINK+="VOTE",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/vdc; ln -sf /dev/VOTE /dev_DSC2/VOTE'"## DMDATA 磁盘配置 (vdd)KERNEL=="vdd",SUBSYSTEM=="block",OWNER="dmdba",GROUP="dinstall",MODE="0660",SYMLINK+="DMDATA",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/vdd; ln -sf /dev/DMDATA /dev_DSC2/DMDATA'"## DMLOG 磁盘配置 (vde)KERNEL=="vde",SUBSYSTEM=="block",OWNER="dmdba",GROUP="dinstall",MODE="0660",SYMLINK+="DMLOG",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/vde; ln -sf /dev/DMLOG /dev_DSC2/DMLOG; chown -R dmdba:dinstall /dev_DSC2'"1.2 重载 udev 规则
udevadm control --reload-rules udevadm trigger systemctl restart systemd-udev-trigger1.3 验证磁盘固定
ls-l/dev_DSC2/# 应看到 DCR、VOTE、DMDATA、DMLOG 四个软链接ls-l/dev/vdb /dev/vdc /dev/vdd /dev/vde# 属主应为 dmdba:dinstall,权限应为 06602. 创建目录结构
su- dmdba# 创建主目录mkdir-p/home/dmdba/dmdbms/data/dsc/dsc01mkdir-p/home/dmdba/dmdbms/data/dsc/dsc02mkdir-p/home/dmdba/dmdbms/data/dsc/cssm_log# 创建 DSC01/DSC02 配置子目录mkdir-p/home/dmdba/dmdbms/data/dsc/dsc01/DSC01_confmkdir-p/home/dmdba/dmdbms/data/dsc/dsc02/DSC02_conf3. 配置文件准备
3.1 dmdcr_cfg.ini
路径:/home/dmdba/dmdbms/data/dsc/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 = *.*.*.* DCR_EP_PORT = 9836 [GRP_CSS] DCR_EP_NAME = CSS1 DCR_EP_HOST = *.*.*.* 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= *.*.*.* 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= *.*.*.* 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= 66373.2 dmasvrmal.ini(两个节点内容相同)
DSC01 路径:/home/dmdba/dmdbms/data/dsc/dsc01/dmasvrmal.ini
DSC02 路径:/home/dmdba/dmdbms/data/dsc/dsc02/dmasvrmal.ini
[MAL_INST1] MAL_INST_NAME= ASM0 MAL_HOST= *.*.*.* MAL_PORT= 4836 [MAL_INST2] MAL_INST_NAME= ASM1 MAL_HOST= *.*.*.* MAL_PORT= 48373.3 dmdcr.ini
DSC01 路径:/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr.ini
DMDCR_PATH = /dev_DSC2/DCR DMDCR_MAL_PATH = /home/dmdba/dmdbms/data/dsc/dsc01/dmasvrmal.ini DMDCR_SEQNO = 0 DMDCR_ASM_RESTART_INTERVAL = 0 DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr.ini DMDCR_DB_RESTART_INTERVAL = 0 DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/data/dsc/dsc01/DSC01_conf/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr.iniDSC02 路径:/home/dmdba/dmdbms/data/dsc/dsc02/dmdcr.ini
DMDCR_PATH = /dev_DSC2/DCR DMDCR_MAL_PATH = /home/dmdba/dmdbms/data/dsc/dsc02/dmasvrmal.ini DMDCR_SEQNO = 1 DMDCR_ASM_RESTART_INTERVAL = 0 DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dmdbms/data/dsc/dsc02/dmdcr.ini DMDCR_DB_RESTART_INTERVAL = 0 DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dmdbms/data/dsc/dsc02/DSC02_conf/dm.ini dcr_ini=/home/dmdba/dmdbms/data/dsc/dsc02/dmdcr.ini3.4 dminit.ini
路径:/home/dmdba/dmdbms/data/dsc/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=****** SYSAUDITOR_PWD=****** [DSC01] CONFIG_PATH= /home/dmdba/dmdbms/data/dsc/dsc01/DSC01_conf PORT_NUM= 6636 MAL_HOST= *.*.*.* MAL_PORT= 6536 LOG_PATH= +DMLOG/log/DSC01_log1.log LOG_PATH= +DMLOG/log/DSC01_log2.log [DSC02] CONFIG_PATH= /home/dmdba/dmdbms/data/dsc/dsc02/DSC02_conf PORT_NUM= 6637 MAL_HOST= *.*.*.* MAL_PORT= 6537 LOG_PATH= +DMLOG/log/DSC02_log1.log LOG_PATH= +DMLOG/log/DSC02_log2.log3.5 cssm.ini
路径:/home/dmdba/dmdbms/data/dsc/cssm.ini
CSSM_OGUID = 1071107589 CSSM_CSS_IP = *.*.*.*:9836 CSSM_CSS_IP = *.*.*.*:9837 CSSM_LOG_PATH = /home/dmdba/dmdbms/data/dsc/cssm_log CSSM_LOG_FILE_SIZE = 32 CSSM_LOG_SPACE_LIMIT = 04. 磁盘初始化(dmasmcmd)
su- dmdbacd/home/dmdba/dmdbms/bin ./dmasmcmd在ASM>提示符下逐条执行:
createdcrdisk'/dev_DSC2/DCR''DCR'createvotedisk'/dev_DSC2/VOTE''VOTE'createasmdisk'/dev_DSC2/DMDATA''DMDATA'createasmdisk'/dev_DSC2/DMLOG''DMLOG'init dcrdisk'/dev_DSC2/DCR'from'/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr_cfg.ini'identifiedby'******'init votedisk'/dev_DSC2/VOTE'from'/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr_cfg.ini'执行完成后输入exit退出。
5. 创建 ASM 磁盘组(dmasmtool)
su- dmdbacd/home/dmdba/dmdbms/bin ./dmasmtooldcr_ini=/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr.ini在ASM>提示符下执行:
CREATEDISKGROUP DMDATA asmdisk'/dev_DSC2/DMDATA';CREATEDISKGROUP DMLOG asmdisk'/dev_DSC2/DMLOG';执行完成后输入exit退出。
6. 初始化数据库(dminit)
su- dmdbacd/home/dmdba/dmdbms/bin ./dminitcontrol=/home/dmdba/dmdbms/data/dsc/dsc01/dminit.ini验证配置文件已生成
ls-l/home/dmdba/dmdbms/data/dsc/dsc01/DSC01_conf/ls-l/home/dmdba/dmdbms/data/dsc/dsc02/DSC02_conf/# 应看到 dm.ini 和 dmmal.ini7. 启动集群
重要:需要 6 个终端窗口,按顺序启动。
终端1 - CSS0:
su- dmdbacd/home/dmdba/dmdbms/bin ./dmcssdcr_ini=/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr.ini终端2 - CSS1:
su- dmdbacd/home/dmdba/dmdbms/bin ./dmcssdcr_ini=/home/dmdba/dmdbms/data/dsc/dsc02/dmdcr.ini终端3 - ASM0:
su- dmdbacd/home/dmdba/dmdbms/bin ./dmasmsvrdcr_ini=/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr.ini终端4 - ASM1:
su- dmdbacd/home/dmdba/dmdbms/bin ./dmasmsvrdcr_ini=/home/dmdba/dmdbms/data/dsc/dsc02/dmdcr.ini终端5 - DSC01:
su- dmdbacd/home/dmdba/dmdbms/bin# 自动拉起 dmdrc.ini文件中的DMDCR_DB_RESTART_INTERVAL = 1./dmserverdcr_ini=/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr.ini# 手动拉起 dmdrc.ini文件中的DMDCR_DB_RESTART_INTERVAL = 0./dmserver /home/dmdba/dmdbms/data/dsc/dsc01/DSC01_conf/dm.inidcr_ini=/home/dmdba/dmdbms/data/dsc/dsc01/dmdcr.ini终端6 - DSC02:
su- dmdbacd/home/dmdba/dmdbms/bin# 自动拉起 dmdrc.ini文件中的DMDCR_DB_RESTART_INTERVAL = 1./dmserver /home/dmdba/dmdbms/data/dsc/dsc02/DSC02_conf/dm.inidcr_ini=/home/dmdba/dmdbms/data/dsc/dsc02/dmdcr.ini8. 验证集群状态
8.1 启动监视器
su- dmdbacd/home/dmdba/dmdbms/bin ./dmcssmini_path=/home/dmdba/dmdbms/data/dsc/cssm.ini在DMCSSM>提示符下执行:
show8.2 预期输出
所有节点状态应为:
sta = OPENinst_status = WORKINGis_ok = TRUEactive = TRUE
9. 注意
- 永远不要用root启动实例
dmdcr.ini中DMDCR_DB_RESTART_INTERVAL = 0,DMCSS无法自动拉起DMSERVER,那么启动DMSERVER的时候需要手动指定dm.ini所在路径
声明:本文为个人实操学习笔记,部署步骤参考达梦数据库官方文档整理,仅供参考