由于前期测试REDO盘规划较小,当前无法直接增加节点3的REDO,因此需要扩容REDO盘,然后在进行节点添加。
当前集群为2节点DSC集群,新增节点DSC3服务器,环境如下:
虚拟机进行centos7部署,关闭防火墙,调整时间,调整系统内核参数、limit限制,创建dmdba用户等。
DSC1服务器再创建一个磁盘,大小为1G(RLOG) 。操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>创建新的虚拟磁盘–>1G-立即分配-存储为单个文件–>选择存放位置以及改名–>完成。
DSC2服务器需要基于DSC1服务器创建的第五个磁盘进行添加,操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>使用现有的虚拟磁盘–>浏览选择磁盘–>完成。
DSC3服务器需要基于DSC1服务器创建的五个磁盘进行添加,操作如下:
关闭虚拟机–>编辑虚拟机设置–>添加–>硬盘–>SCSI–>使用现有的虚拟磁盘–>浏览选择磁盘–>完成。
完成后结果如下图:
添加磁盘后,磁盘可能会跳号,这里就体现了UUID绑定的重要性。
找到虚拟机安装位置,编辑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。
fdisk -l
/usr/lib/udev/scsi_id -g -u /dev/sdb
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"
udevadm trigger --type=devices --action=change
ls -l /dev/ASMDISK
./DMInstall.bin -I <<EOF
1
n
y
21
1
/dmdata/dmdbms
y
EOF
su - root
sh /dmdata/dmdbms/script/root/root_installer.sh
echo " export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool" >> .bash_profile
source .bash_profile
[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).
(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
······
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
[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.
使用 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]$
[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>
[dmdba@dsc1 config]$ scp -r db0_config root@192.168.20.53:/dmdata/dmdbms/config/db2_config
新建 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
CONFIG_PATH = /dmdata/dmdbms/config/db2_config
INSTANCE_NAME = DB2
[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
#修改[ARCHIVE_REMOTE2]的DSC3服务器位置
[ARCHIVE_REMOTE2]
ARCH_TYPE = REMOTE
ARCH_DEST = DB2
ARCH_INCOMING_PATH = +DM_DATA/DB2/arch
ARCH_FILE_SIZE = 1024
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).
[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]$
[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
[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).
#修改各个组的参数信息,增加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
[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
[dmdba@dsc1 config]$ dmcssm ini_path=./dmcssm.ini
extend node
[monitor] [2025-06-13 19:31:40:108] 执行扩展节点动作
[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)完成
[dmdba@localhost ~]$ DmCSSServiceCSS start
Starting DmCSSServiceCSS: [ OK ]
[dmdba@localhost ~]$ DmASMSvrServiceASM start
Starting DmASMSvrServiceASM: [ OK ]
[dmdba@localhost ~]$ DmServiceDMS start
Starting DmServiceDMS [ OK ]
dmcssm ini_path=./dmcssm.ini
show
[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集群不支持动态下线节点,尝试下线、调整参数、clear等方式,未能成功清理元数据信息。
后续在研究。
文章
阅读量
获赞