在很多时候随着数据量的增长,原来规划的ASM磁盘组会出现不够用的情况,这时候我们需要对现有ASM磁盘组进行磁盘添加以扩容磁盘组容量,保证业务稳定运行。也有一部分情况是更换存储的时候需要添加新的磁盘到老的磁盘组,然后将老的磁盘从ASM磁盘组删除。那么如何对ASM磁盘组进行添加删除磁盘呢,本文根据实际环境模拟测试进行操作。

前提:新增扩容磁盘已经映射完毕,并全部正常挂载到主机系统。

一、查看操作

1、首先查看集群资源状态crs_stat -t ,可以看到现有的asm磁盘组名称

Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm disk

2、查看+ASM1实例状态

Oracle操作系列:ASM磁盘组添加删除磁盘实操_oracle_02

3、查看实例数据库类型

Oracle操作系列:ASM磁盘组添加删除磁盘实操_实战_03


4、查看+ASM实例类型

Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm_04

5、查询ASM(V$ASM_DISK,V$ASM_DISKGROUP)

DESC V$ASM_DISK  --查看磁盘组磁盘信息
DESC V$ASM_DISKGROUP  --查看磁盘组信息
--通过动态性能视图查看ASM磁盘空间使用情况

select name,total_mb free_mb from v$asm_disk;

Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm operation_05
--查看磁盘的状态,路径等信息

Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm operation_06

--查看磁盘所属的失败组以及磁盘在asm磁盘组的磁盘名称

select group_number,disk_number,mount_status,state,name,failgroup from v$asm_disk;

Oracle操作系列:ASM磁盘组添加删除磁盘实操_实战_07

--查看ASM磁盘的路径

select group_number,disk_number,mount_status,state,name,path from v$asm_disk;

Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm_08

--查看是否有数据库实例连接上ASM实例

select instance_name,db_name,status from v$asm_client;

Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm operation_09

二、添加删除磁盘操作

1、创建磁盘组

create diskgroup DATA2 external redundancy disk '/dev/raw/raw5' ATTRIBUTE 'compatible.asm' = '11.2.0.0.0';

Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm_10

2、为磁盘组添加磁盘

注意:创建磁盘组和给磁盘组添加磁盘时,使用PATH,删除磁盘组磁盘时使用name。
为磁盘组添加磁盘
alter diskgroup data add disk '/dev/raw/raw6';
Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm_11

3、删除磁盘

为磁盘组删除磁盘
alter diskgroup data drop disk 'DATA_0001';
4、取消删除磁盘
alter diskgroup data undrop disks;
Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm_12

5、在磁盘组添加磁盘以后,可以使用命令查看重平衡进度select * from v$asm_operation;
Oracle操作系列:ASM磁盘组添加删除磁盘实操_实战_13

三、删除磁盘组

drop diskgroup data2;

drop diskgroup data2 including contents;

Oracle操作系列:ASM磁盘组添加删除磁盘实操_asm_14