DSC集群磁盘扩容和增加节点测试
由于前期测试REDO盘规划较小,当前无法直接增加节点3的REDO,因此需要扩容REDO盘,然后在进行节点添加。
一、 环境信息
当前集群为2节点DSC集群,新增节点DSC3服务器,环境如下:
二、 增加虚拟机及磁盘
虚拟机进行centos7部署,关闭防火墙,调整时间,调整系统内核参数、limit限制,创建dmdba用户等。
1 虚拟机磁盘准备
DSC1服务器再创建一个磁盘,大小为1G(RLOG) 。操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>创建新的虚拟磁盘–>1G-立即分配-存储为单个文件–>选择存放位置以及改名–>完成。
DSC2服务器需要基于DSC1服务器创建的第五个磁盘进行添加,操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>使用现有的虚拟磁盘–>浏览选择磁盘–>完成。
DSC3服务器需要基于DSC1服务器创建的五个磁盘进行添加,操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>使用现有的虚拟磁盘–>浏览选择磁盘–>完成。
完成后结果如下图:
添加磁盘后,磁盘可能会跳号,这里就体现了UUID绑定的重要性。
2. 虚拟机配置文件修改
找到虚拟机安装位置,编辑DSC3虚拟机的参数文件DSC3.vmx:
添加以下内容。
diskLib.dataCacheMaxSize=0 diskLib.dataCacheMaxReadAheadSize=0 diskLib.dataCacheMinReadAheadSize=0 diskLib.dataCachePageSize=4096 diskLib.maxUnsyncedWrites = "0" disk.locking = "FALSE" scsi0.sharedBus ="virtual" disk.EnableUUID = "TRUE"复制
注意scsi0.sharedBus ="virtual"参数,查看磁盘高级选项,查看scsi的编号进行调整,通常默认会识别为scsi0:2-5。
3. Udev绑定(所有服务器)
3.1 查看磁盘
fdisk -l复制

3.2 查看磁盘的UUID
/usr/lib/udev/scsi_id -g -u /dev/sdb复制

3.3 绑定磁盘
vi /etc/udev/rules.d/66-dmdevices.rules复制
KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29f1fb601bd39e1008801375b84", SYMLINK+="ASMDISK/dmdcr",OWNER="dmdba", GROUP="dmdba",MODE="0660" KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2951f912cfa5a52048f7846be92", SYMLINK+="ASMDISK/dmvote",OWNER="dmdba", GROUP="dmdba",MODE="0660" KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29293ba4bb7e368110283b32f6a", SYMLINK+="ASMDISK/dmredo",OWNER="dmdba", GROUP="dmdba",MODE="0660" KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2963b11d8c08e0ead2aa246a532", SYMLINK+="ASMDISK/dmdata",OWNER="dmdba", GROUP="dmdba",MODE="0660" #增加下面这个 KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29109e1d80349aad8ae8cce7605", SYMLINK+="ASMDISK/dmredo2",OWNER="dmdba", GROUP="dmdba",MODE="0660"复制
3.4 生效
udevadm trigger --type=devices --action=change复制
3.5 查看
ls -l /dev/ASMDISK复制

4. 新节点数据库软件安装
4.1 安装数据库软件
./DMInstall.bin -I <<EOF 1 n y 21 1 /dmdata/dmdbms y EOF复制
su - root sh /dmdata/dmdbms/script/root/root_installer.sh复制
4.2 配置环境变量
echo " export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool" >> .bash_profile source .bash_profile复制
5. DSC1节点增加数据盘
5.1 初始化增加数据盘
[dmdba@dsc1 ~]$ dmasmcmd dmasmcmd V8 ASM>create asmdisk '/dev/ASMDISK/dmredo2' 'DMREDO' 1024 [TRACE]The ASM initialize asmdisk /dev/ASMDISK/dmredo2 to name DMASMDMREDO Used time: 15.459(ms).复制
5.2 将数据盘添加到DM_REDO中
(1)登录
[dmdba@dsc1 ~]$ dmasmtool DCR_INI=/dmdata/dmdbms/config/dmdcr.ini dmasmtool V8复制
(2)查看磁盘情况
ASM>df group DM_REDO include 1 disks...... NO.1 disk : name: DMASMDMREDO path: /dev/ASMDISK/dmredo size: 1.97 GB create_time: 2025-06-11 22:13:44 modify_time: 2025-06-11 22:20:00 belong group: DM_REDO group DM_DATA include 1 disks...... NO.1 disk : name: DMASMDMDATA path: /dev/ASMDISK/dmdata size: 7.97 GB create_time: 2025-06-11 22:13:44 modify_time: 2025-06-11 22:20:04 belong group: DM_DATA ······ total 1 disks unused...... NO.1 : name: DMASMDMREDO, path: /dev/ASMDISK/dmredo2, size: 992.00 MB Used time: 38.473(ms).复制
(3)添加盘
ASM>alter diskgroup DM_REDO add asmdisk '/dev/ASMDISK/dmredo2' Used time: 9.066(ms).复制
(4)查看磁盘情况
ASM>df group DM_REDO include 2 disks...... NO.1 disk : name: DMASMDMREDO path: /dev/ASMDISK/dmredo size: 1.97 GB create_time: 2025-06-11 22:13:44 modify_time: 2025-06-11 22:20:00 belong group: DM_REDO ······复制
5.3 查看磁盘组
ASM>lsdg total 4 groups...... 1 disk_group: name: DM_REDO id: 0 au_size: 1.00 MB extent_size: 4 total_size: 2.94 GB free_size: 1.42 GB total_file_num: 8复制
三、 DMDSC增加节点
1. 在数据库中添加DSC3的REDO日志文件
1.1 创建REDO文件
[dmdba@dsc1 ~]$ disql 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间 : 5.067(ms) disql V8 SQL> alter database add node logfile '+DM_REDO/log/db2_log01.log' size 256,'+DM_REDO/log/db2_log02.log' size 256,'+DM_REDO/log/db2_log03.log' size 256; 操作已执行 已用时间: 477.455(毫秒). 执行号:501.复制
1.2 查看REDO文件信息
使用 dmctlcvt 工具将 dm.ctl 转换为文本文件 dmctl.txt,查看 dmctl.txt,
新增节点的日志文件信息已经添加进 dm.ctl。
[dmdba@dsc1 ~]$ dmctlcvt TYPE=1 SRC=+DM_DATA/DATA/DSC/dm.ctl DEST=/dmdata/dmdbms/dmctl.txt DCR_INI=/dmdata/dmdbms/config/dmdcr.ini dmctlcvt V8 convert ctl to txt success! [dmdba@dsc1 db0_config]$ grep 'REDO' /dmdata/dmdbms/dmctl.txt fil_path=+DM_REDO/log/db0_log01.log fil_path=+DM_REDO/log/db0_log02.log fil_path=+DM_REDO/log/db0_log03.log fil_path=+DM_REDO/log/db1_log01.log fil_path=+DM_REDO/log/db1_log02.log fil_path=+DM_REDO/log/db1_log03.log fil_path=+DM_REDO/log/db2_log01.log fil_path=+DM_REDO/log/db2_log02.log fil_path=+DM_REDO/log/db2_log03.log [dmdba@dsc1 db0_config]$复制
1.3 进入ASM里查看REDO文件
[dmdba@dsc1 ~]$ dmasmtool DCR_INI=/dmdata/dmdbms/config/dmdcr.ini dmasmtool V8 ASM>ls +DM_REDO/log file : db0_log01.log file : db0_log02.log file : db0_log03.log file : db1_log01.log file : db1_log02.log file : db1_log03.log file : db2_log01.log file : db2_log02.log file : db2_log03.log total count 9. Used time: 5.857(ms). ASM>复制
2. 对新增节点进行配置文件整理
2.1 拷贝DSC1的配置文件到DSC3
[dmdba@dsc1 config]$ scp -r db0_config root@192.168.20.53:/dmdata/dmdbms/config/db2_config复制
2.1.1 修改Dmdcr.ini(DSC3)
新建 dmdcr.ini 配置文件,保存到节点192.168.20.53的/dmdata/dmdbms/config目录下面
#注意DMDCR_SEQNO = 2,序号相对前两个+1
DMDCR_PATH = /dev/ASMDISK/dmdcr DMDCR_MAL_PATH = /dmdata/dmdbms/config/dmasvrmal.ini DMDCR_SEQNO = 2 DMDCR_ASM_TRACE_LEVEL = 2 DMDCR_AUTO_OPEN_CHECK = 90 DMDCR_ASM_RESTART_INTERVAL = 30 DMDCR_ASM_STARTUP_CMD = /dmdata/dmdbms/bin/DmASMSvrServiceASM start DMDCR_DB_RESTART_INTERVAL = 60 DMDCR_DB_STARTUP_CMD = /dmdata/dmdbms/bin/DmServiceDMS start复制
2.2 修改 dsc2_config 文件夹下的配置文件:
2.2.1 修改 dm.ini
CONFIG_PATH = /dmdata/dmdbms/config/db2_config INSTANCE_NAME = DB2复制
2.2.2 修改 dmarch.ini
[dmdba@localhost db2_config]$ cat dmarch.ini [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = +DM_DATA/DB2/arch ARCH_FILE_SIZE = 1024 ARCH_SPACE_LIMIT = 102400 [ARCHIVE_REMOTE1] ARCH_TYPE = REMOTE ARCH_DEST = DB0 ARCH_INCOMING_PATH = +DM_DATA/DB0/arch ARCH_FILE_SIZE = 1024 [ARCHIVE_REMOTE2] ARCH_TYPE = REMOTE ARCH_DEST = DB1 ARCH_INCOMING_PATH = +DM_DATA/DB1/arch ARCH_FILE_SIZE = 1024复制
3. 当前集群参数配置
3.1 修改归档配置
3.1.1 增加归档信息
#修改[ARCHIVE_REMOTE2]的DSC3服务器位置
[ARCHIVE_REMOTE2] ARCH_TYPE = REMOTE ARCH_DEST = DB2 ARCH_INCOMING_PATH = +DM_DATA/DB2/arch ARCH_FILE_SIZE = 1024复制
3.1.2 增加DSC3的ASM归档路径
dmasmtool DCR_INI=/dmdata/dmdbms/config/dmdcr.ini dmasmtool V8 ASM>cd DM_DATA +DM_DATA Used time: 1.332(ms). ASM>ls dir : DATA dir : DB0 dir : DB1 total count 3. Used time: 1.650(ms). ASM>mkdir DB2 Used time: 1.874(ms). ASM>ls dir : DATA dir : DB0 dir : DB1 dir : DB2 total count 4. Used time: 1.859(ms).复制
3.2 Dmmal.ini(所有节点)
[dmdba@localhost ~]$ cd /dmdata/dmdbms/config [dmdba@localhost ~]$ cat db2_config/dmmal.ini [mal_inst0] mal_inst_name = DB0 mal_host = 192.168.20.51 mal_port = 5736 [mal_inst1] mal_inst_name = DB1 mal_host = 192.168.20.52 mal_port = 5736 [mal_inst2] mal_inst_name = DB2 mal_host = 192.168.20.53 mal_port = 5736 [dmdba@localhost config]$复制
3.2.1 dmasvrmal.ini(所有节点)
[dmdba@localhost ~]$ cd /dmdata/dmdbms/config [dmdba@localhost config]$ cat dmasvrmal.ini [MAL_INST1] MAL_INST_NAME = ASM0 MAL_HOST = 192.168.20.51 #心跳地址 MAL_PORT = 5636 [MAL_INST2] MAL_INST_NAME = ASM1 MAL_HOST = 192.168.20.52 #心跳地址 MAL_PORT = 5636 [MAL_INST3] MAL_INST_NAME = ASM2 MAL_HOST = 192.168.20.53 #心跳地址 MAL_PORT = 5636复制
3.3 导出当前的DCR配置信息
[dmdba@dsc1 ~]$ dmasmcmd dmasmcmd V8 ASM>export dcrdisk '/dev/ASMDISK/dmdcr' to '/dmdata/dmdbms/dmdcr_cfg_bak.ini' ASMCMD export DCRDISK success. Used time: 9.330(ms).复制
3.4 编辑dmdcr_cfg_bak.ini
#修改各个组的参数信息,增加DSC3节点的信息
#注意DCR_EP_SHM_KEY要错开
[dmdba@dsc1 dmdbms]$ cat dmdcr_cfg_bak.ini # the file is auto-created by system, self edit is invalid! #DCR HDR DCR_N_GRP = 3 DCR_VTD_PATH = /dev/ASMDISK/dmvote DCR_OGUID = 45331 DCR_MODE = 0 [GRP] DCR_GRP_TYPE = CSS DCR_GRP_NAME = GRP_CSS DCR_GRP_N_EP = 3 DCR_GRP_EP_ARR = {0,1,2} DCR_GRP_N_ERR_EP = 0 DCR_GRP_ERR_EP_ARR = {} DCR_GRP_DSKCHK_CNT = 60 [GRP] DCR_GRP_TYPE = ASM DCR_GRP_NAME = GRP_ASM DCR_GRP_N_EP = 3 DCR_GRP_EP_ARR = {0,1,2} DCR_GRP_N_ERR_EP = 0 DCR_GRP_ERR_EP_ARR = {} DCR_GRP_DSKCHK_CNT = 60 [GRP] DCR_GRP_TYPE = DB DCR_GRP_NAME = GRP_DB DCR_GRP_N_EP = 3 DCR_GRP_EP_ARR = {0,1,2} DCR_GRP_N_ERR_EP = 0 DCR_GRP_ERR_EP_ARR = {} DCR_GRP_DSKCHK_CNT = 60 [GRP_CSS] DCR_EP_NAME = CSS0 DCR_EP_HOST = 192.168.20.51 DCR_EP_PORT = 5336 [GRP_CSS] DCR_EP_NAME = CSS1 DCR_EP_HOST = 192.168.20.52 DCR_EP_PORT = 5336 [GRP_CSS] DCR_EP_NAME = CSS2 DCR_EP_HOST = 192.168.20.53 DCR_EP_PORT = 5336 [GRP_ASM] DCR_EP_NAME = ASM0 DCR_EP_SHM_KEY = 93360 DCR_EP_SHM_SIZE = 10 DCR_EP_HOST = 192.168.20.51 DCR_EP_PORT = 5436 DCR_EP_ASM_LOAD_PATH = /dev/ASMDISK [GRP_ASM] DCR_EP_NAME = ASM1 DCR_EP_SHM_KEY = 93361 DCR_EP_SHM_SIZE = 10 DCR_EP_HOST = 192.168.20.52 DCR_EP_PORT = 5436 DCR_EP_ASM_LOAD_PATH = /dev/ASMDISK [GRP_ASM] DCR_EP_NAME = ASM2 DCR_EP_SHM_KEY = 93362 DCR_EP_SHM_SIZE = 10 DCR_EP_HOST = 192.168.20.53 DCR_EP_PORT = 5436 DCR_EP_ASM_LOAD_PATH = /dev/ASMDISK [GRP_DB] DCR_EP_NAME = DB0 DCR_EP_SEQNO = 0 DCR_EP_PORT = 5236 DCR_CHECK_PORT = 5536 [GRP_DB] DCR_EP_NAME = DB1 DCR_EP_SEQNO = 1 DCR_EP_PORT = 5236 DCR_CHECK_PORT = 5536 [GRP_DB] DCR_EP_NAME = DB2 DCR_EP_SEQNO = 2 DCR_EP_PORT = 5236 DCR_CHECK_PORT = 5536复制
3.5 应用参数
[dmdba@dsc1 dmdbms]$ dmasmcmd dmasmcmd V8 ASM> extend dcrdisk '/dev/ASMDISK/dmdcr' from '/dmdata/dmdbms/dmdcr_cfg_bak.ini' ASMCMD extend node for dcr disk success. ASMCMD extend node for vote disk success. Used time: 83.879(ms). ASM>help复制
3.6 扩展节点
[dmdba@dsc1 config]$ dmcssm ini_path=./dmcssm.ini extend node [monitor] [2025-06-13 19:31:40:108] 执行扩展节点动作复制
4. 新节点启动服务
4.1 新节点注册服务
[root@localhost ~]# /dmdata/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dmdata/dmdbms/config/dmdcr.ini -p CSS Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSServiceCSS.service to /usr/lib/systemd/system/DmCSSServiceCSS.service. 创建服务(DmCSSServiceCSS)完成 [root@localhost ~]# /dmdata/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dmdata/dmdbms/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM Created symlink from /etc/systemd/system/multi-user.target.wants/DmASMSvrServiceASM.service to /usr/lib/systemd/system/DmASMSvrServiceASM.service. 创建服务(DmASMSvrServiceASM)完成 [root@localhost ~]# /dmdata/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdata/dmdbms/config/db2_config/dm.ini -dcr_ini /dmdata/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DMS Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMS.service to /usr/lib/systemd/system/DmServiceDMS.service. 创建服务(DmServiceDMS)完成复制
4.2 新节点启动服务
[dmdba@localhost ~]$ DmCSSServiceCSS start Starting DmCSSServiceCSS: [ OK ] [dmdba@localhost ~]$ DmASMSvrServiceASM start Starting DmASMSvrServiceASM: [ OK ] [dmdba@localhost ~]$ DmServiceDMS start Starting DmServiceDMS [ OK ]复制
4.3 查看集群
dmcssm ini_path=./dmcssm.ini show复制

5. 修改CSSM监视器配置
[dmdba@dsc1 config]$ cat dmcssm.ini CSSM_OGUID = 45331 CSSM_CSS_IP = 192.168.20.51:5336 CSSM_CSS_IP = 192.168.20.52:5336 CSSM_CSS_IP = 192.168.20.53:5336 CSSM_LOG_PATH = /dmdata/dmdbms/log CSSM_LOG_FILE_SIZE = 256 CSSM_LOG_SPACE_LIMIT = 2048复制
四、 DMDSC下线节点
DMDSC集群不支持动态下线节点,尝试下线、调整参数、clear等方式,未能成功清理元数据信息。
后续在研究。




