1、添加新磁盘:
两个节点都操作,使用root用户

for i in j k; do 
echo "KERNEL==\"sd*\",ENV{DEVTYPE}==\"disk\",SUBSYSTEM==\"block\",PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\",RESULT==\"`/usr/lib/udev/scsi_id -g -u /dev/sd$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asm-disk$i b \$major \$minor; chown grid:asmadmin /dev/asm-disk$i; chmod 0660 /dev/asm-disk$i'\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
done

/sbin/udevadm trigger --type=devices --action=change
/sbin/udevadm control --reload
ll /dev/asm*

一个节点

[root@rac01 ~]# su - grid
Last login: Tue Apr 5 21:48:21 CST 2022 on pts/1
[grid@rac01 ~]$ asmcmd
ASMCMD> lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL N 512 512 4096 4194304 143360 123652 51200 36226 0 N DATA/
MOUNTED EXTERN N 512 512 4096 4194304 40960 39444 0 39444 0 N MGMT/
MOUNTED NORMAL N 512 512 4096 4194304 15360 14444 5120 4662 0 Y OCR/

[root@rac01 ~]# su - grid
Last login: Tue Apr 5 21:25:22 CST 2022 on pts/0

[grid@rac01 ~]$ sqlplus / as sysasm

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 5 21:51:11 2022
Version 19.12.0.0.0

Copyright (c) 1982, 2021, Oracle. All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0

SQL> alter diskgroup DATA add disk '/dev/asm-diskj';

Diskgroup altered.

SQL> alter diskgroup DATA add disk '/dev/asm-diskk';

Diskgroup altered.

SQL> col name format a10
SQL> set line 9999
SQL> col path format a25
SQL> select GROUP_NUMBER,path,name,disk_number,total_mb,free_mb,CREATE_DATE,MOUNT_STATUS,MOUNT_DATE from v$asm_disk order by GROUP_NUMBER desc,disk_number;

GROUP_NUMBER PATH NAME DISK_NUMBER TOTAL_MB FREE_MB CREATE_DA MOUNT_S MOUNT_DAT
------------ ------------------------- ---------- ----------- ---------- ---------- --------- ------- ---------
3 AFD:OCR1 OCR1 0 5120 4812 19-SEP-21 CACHED 05-APR-22
3 AFD:OCR2 OCR2 1 5120 4820 19-SEP-21 CACHED 05-APR-22
3 AFD:OCR3 OCR3 2 5120 4812 19-SEP-21 CACHED 05-APR-22
2 AFD:MGMT1 MGMT1 0 40960 39444 19-SEP-21 CACHED 05-APR-22
1 AFD:DATA1 DATA1 0 51200 45304 20-SEP-21 CACHED 05-APR-22
1 AFD:DATA2 DATA2 1 51200 45304 20-SEP-21 CACHED 05-APR-22
1 /dev/asmdiskh DATA_0002 2 20480 17668 26-DEC-21 CACHED 05-APR-22
1 /dev/asmdiski DATA_0003 3 20480 17664 26-DEC-21 CACHED 05-APR-22
1 /dev/asm-diskj DATA_0004 4 8192 7016 05-APR-22 CACHED 05-APR-22
1 /dev/asm-diskk DATA_0005 5 8192 7008 05-APR-22 CACHED 05-APR-22
0 /dev/asmdiskd 0 0 0 19-SEP-21 IGNORED 05-APR-22

GROUP_NUMBER PATH NAME DISK_NUMBER TOTAL_MB FREE_MB CREATE_DA MOUNT_S MOUNT_DAT
------------ ------------------------- ---------- ----------- ---------- ---------- --------- ------- ---------
0 /dev/asmdiskb 1 0 0 20-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiske 2 0 0 19-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiskf 3 0 0 19-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiskc 4 0 0 20-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiskg 5 0 0 19-SEP-21 IGNORED 05-APR-22

16 rows selected.

SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;

NAME STATE FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
---------- ----------- ---------- ----------------------- --------------
DATA MOUNTED 139964 51200 44382
MGMT MOUNTED 39444 0 39444
OCR MOUNTED 14444 5120 4662

ASMCMD> lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL Y 512 512 4096 4194304 159744 139964 51200 44382 0 N DATA/
MOUNTED EXTERN N 512 512 4096 4194304 40960 39444 0 39444 0 N MGMT/
MOUNTED NORMAL N 512 512 4096 4194304 15360 14444 5120 4662 0 Y OCR/

Rebal为Y说明磁盘在做rebance

ASMCMD> lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL N 512 512 4096 4194304 159744 139964 51200 44382 0 N DATA/
MOUNTED EXTERN N 512 512 4096 4194304 40960 39444 0 39444 0 N MGMT/
MOUNTED NORMAL N 512 512 4096 4194304 15360 14444 5120 4662 0 Y OCR/

SQL> select * from gv$asm_operation;

no rows selected

2、删除旧磁盘
剔除DATA_0002和DATA_0003

SQL> alter diskgroup DATA drop disk DATA_0002;

Diskgroup altered.

SQL> alter diskgroup DATA drop disk DATA_0003;

Diskgroup altered.

3、做动态平衡

SQL> alter system set asm_power_limit = 6 sid='*' ;

System altered.

SQL> alter diskgroup DATA rebalance wait ;

Diskgroup altered.

SQL> select * from gv$asm_operation;

no rows selected

ASMCMD> lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL Y 512 512 4096 4194304 159744 139964 51200 44382 0 N DATA/
MOUNTED EXTERN N 512 512 4096 4194304 40960 39444 0 39444 0 N MGMT/
MOUNTED NORMAL N 512 512 4096 4194304 15360 14444 5120 4662 0 Y OCR/
ASMCMD> lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED NORMAL N 512 512 4096 4194304 118784 99028 51200 23914 0 N DATA/
MOUNTED EXTERN N 512 512 4096 4194304 40960 39444 0 39444 0 N MGMT/
MOUNTED NORMAL N 512 512 4096 4194304 15360 14444 5120 4662 0 Y OCR/
ASMCMD>

4.查看是否完成

SQL> col name format a10
SQL> set line 9999
SQL> col path format a25
SQL> select GROUP_NUMBER,path,name,disk_number,total_mb,free_mb,CREATE_DATE,MOUNT_STATUS,MOUNT_DATE from v$asm_disk order by GROUP_NUMBER desc,disk_number;

GROUP_NUMBER PATH NAME DISK_NUMBER TOTAL_MB FREE_MB CREATE_DA MOUNT_S MOUNT_DAT
------------ ------------------------- ---------- ----------- ---------- ---------- --------- ------- ---------
3 AFD:OCR1 OCR1 0 5120 4812 19-SEP-21 CACHED 05-APR-22
3 AFD:OCR2 OCR2 1 5120 4820 19-SEP-21 CACHED 05-APR-22
3 AFD:OCR3 OCR3 2 5120 4812 19-SEP-21 CACHED 05-APR-22
2 AFD:MGMT1 MGMT1 0 40960 39444 19-SEP-21 CACHED 05-APR-22
1 AFD:DATA1 DATA1 0 51200 43272 20-SEP-21 CACHED 05-APR-22
1 AFD:DATA2 DATA2 1 51200 43272 20-SEP-21 CACHED 05-APR-22
1 /dev/asm-diskj DATA_0004 4 8192 6244 05-APR-22 CACHED 05-APR-22
1 /dev/asm-diskk DATA_0005 5 8192 6240 05-APR-22 CACHED 05-APR-22
0 /dev/asmdiskd 0 0 0 19-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiskb 1 0 0 20-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiski 2 0 0 26-DEC-21 CLOSED 05-APR-22

GROUP_NUMBER PATH NAME DISK_NUMBER TOTAL_MB FREE_MB CREATE_DA MOUNT_S MOUNT_DAT
------------ ------------------------- ---------- ----------- ---------- ---------- --------- ------- ---------
0 /dev/asmdiskh 3 0 0 26-DEC-21 CLOSED 05-APR-22
0 /dev/asmdiske 4 0 0 19-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiskf 5 0 0 19-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiskc 6 0 0 20-SEP-21 IGNORED 05-APR-22
0 /dev/asmdiskg 7 0 0 19-SEP-21 IGNORED 05-APR-22

16 rows selected.

SQL> select name,state,free_mb,required_mirror_free_mb,usable_file_mb from v$asm_diskgroup;

NAME STATE FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
---------- ----------- ---------- ----------------------- --------------
DATA MOUNTED 99028 51200 23914
MGMT MOUNTED 39444 0 39444
OCR MOUNTED 14444 5120 4662

5.更新udev
更新udev,-- 2个节点都操作,修改如下文件/etc/udev/rules.d/99-oracle-asmdevices.rules,去掉刚才的diskh和diski

/sbin/udevadm trigger --type=devices --action=change
/sbin/udevadm control --reload
ll /dev/asm*