下文内容皆为虚拟机实验环境模拟。
新建磁盘组:
1.查看磁盘情况: fdisk -l
Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
Disk /dev/sdb: 16.1 GB, 16106127360 bytes, 31457280 sectors
Disk /dev/sdc: 26.8 GB, 26843545600 bytes, 52428800 sectors
Disk /dev/sdd: 5368 MB, 5368709120 bytes, 10485760 sectors
2.查看磁盘的wwid
for i in `cat /proc/partitions | awk '{print $4}' |grep sd | grep [a-z]$`; do echo "### $i: ` /usr/lib/udev/scsi_id -g -u -d /dev/$i`"; done
### sda: 1ATA_VBOX_HARDDISK_VBcbf2815f-97e0701b
### sdb: 1ATA_VBOX_HARDDISK_VB26d0cb2b-3af6a552
### sdc: 1ATA_VBOX_HARDDISK_VB9beff7cc-286da8c0
### sdd: 1ATA_VBOX_HARDDISK_VB3e25be20-22d544de
3.查看已挂载磁盘的属组和权限: ll /dev/raw
ll /dev/raw
total 0
brw-rw---- 1 grid asmadmin 8, 16 Mar 15 09:29 raw1
brw-rw---- 1 grid asmadmin 8, 32 Mar 15 09:29 raw2
crw-rw---- 1 root disk 162, 0 Mar 15 09:29 rawctl
4.修改rules文件,将新的wwid加入到文件中,并使其生效(两个节点都要做)
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="1ATA_VBOX_HARDDISK_VB26d0cb2b-3af6a552", RUN+="/bin/sh -c 'mknod /dev/raw/raw1 b $major $minor; chown grid:asmadmin /dev/raw/raw1; chmod 0660 /dev/raw/raw1'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="1ATA_VBOX_HARDDISK_VB9beff7cc-286da8c0",
RUN+="/bin/sh -c 'mknod /dev/raw/raw2 b $major $minor; chown grid:asmadmin /dev/raw/raw2; chmod 0660 /dev/raw/raw2'"
KERNEL=="sd*[!0-9]", ENV{DEVTYPE}=="disk", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode", RESULT=="1ATA_VBOX_HARDDISK_VB3e25be20-22d544de", RUN+="/bin/sh -c 'mknod /dev/raw/raw3 b $major $minor; chown grid:asmadmin /dev/raw/raw3; chmod 0660 /dev/raw/raw3'"
使用命令: /sbin/udevadm trigger --type=devices --action=change 使其生效,使用: ll /dev/raw 查看属组和权限
total 0
brw-rw---- 1 grid asmadmin 8, 16 Mar 15 09:29 raw1
brw-rw---- 1 grid asmadmin 8, 32 Mar 15 09:29 raw2
brw-rw---- 1 grid asmadmin 8, 48 Mar 15 09:48 raw3
crw-rw---- 1 root disk 162, 0 Mar 15 09:48 rawctl
5.检查COMPATIBILITY,DATABASE_COMPATIBILITY参数:select NAME,COMPATIBILITY,DATABASE_COMPATIBILITY from v$asm_diskgroup;
NAME COMPATIBILITY DATABASE_COMPATIBILITY
--------------- ------------------------- -------------------------
CRS 19.0.0.0.0 10.1.0.0.0
DATA 19.0.0.0.0 10.1.0.0.0
DATADG 19.0.0.0.0 10.1.0.0.0
6.切换grid用户,登录asm实例,并创建新的磁盘组
[root@rac1 ~]# su - grid
Last login: Tue Mar 15 09:50:44 CST 2022
[grid@rac1:/home/grid]$ sqlplus / as sysasm
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Mar 15 09:53:00 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
create diskgroup DATADG external redundancy disk
'/dev/raw/raw3'
attribute 'compatible.asm' ='19.0.0.0.0','compatible.rdbms'='10.1.0.0.0';
Diskgroup created.
磁盘组扩容:
1.将刚刚新增的DATADG磁盘组dismount,删除。
dismount: alter diskgroup DATADG dismount;
drop: drop diskgroup DATADG force including contents;
2.将空闲磁盘添加到原有的DATA上,可在另一个节点查看rebalance进度。
加存储:
alter diskgroup DATA add disk
'/dev/raw/raw3'
rebalance power 1;
查看进度:
set linesize 160
select * from gv$asm_operation;(没有结果表明rebalance已完成)
下图可以看到DATA盘存储增加了5G。