目录
一、手工创建ASM磁盘组
1.1.查看RAC集群状态
1.2.查看ASM磁盘组和磁盘状态
1.3.添加ASM磁盘组YULU
1.4.删除磁盘组
二、ASM磁盘组扩容和删除
2.1.查看ASM磁盘信息
2.2.扩容磁盘组
2.3.查询rebalance状态
2.4.删除磁盘组中的磁盘
2.4.1.查询asm磁盘删除前信息
2.4.2.删除asm磁盘组中的磁盘,data3磁盘恢复到未使用状态。
2.5.登录到root用户下进行清洗格式化
下边这篇是前几天内部部署19c集群环境,因归档日志爆满,后边采取扩容ASM磁盘组的操作流程。
记一次Oracle集群归档日志爆满之后如何处理(涉及ASM磁盘的增添。有坑必踩)_oracle归档日志满了如何处理-CSDN博客
一、手工创建ASM磁盘组
默认已经配置好udev磁盘环境,配置udev规则是为了主机同时能识别到同一块磁盘,且磁盘名相同,且硬盘不会因重启之后,信息发生更改,导致盘符错乱。
1.1.查看RAC集群状态
# su - grid$
crs_stat -t -v
1.2.查看ASM磁盘组和磁盘状态
$ sqlplus / as sysasmSQL>select group_number,name,state,type from v$asm_diskgroup;SQL>select group_number,name,path from v$asm_disk;
从查询结果可以看到,现有集群环境中已有三个ASM磁盘组(磁盘组编号分别是1,2,3),并且一个磁盘(/dev/asmdisk/data3)未被使用。
1.3.添加ASM磁盘组YULU
磁盘组冗余状态有三种( high/normal/external),我们测试环境只有一个磁盘,默认使用external模式。
SQL>create diskgroup yulu external redundancy disk '/dev/asmdisk/data3';磁盘组创建成功后查询状态,已新增一个名称YULU的磁盘组并且处于mounted状态。名称是YULU的磁盘组只是在rac1主机上挂载,还需要将新建YULU磁盘组在rac2主机上挂载。
登录rac2主机:
# su - grid$ sqlplus / as sysasmSQL>select group_number,name,state,type from v$asm_diskgroup
集群主机rac2上挂载新建的磁盘组YULU,到此处RAC集群就可以正常使用新创建的ASM磁盘组了。
SQL>alter diskgroup yulu mount;1.4.删除磁盘组
生产环境删除要谨慎、再谨慎。此处是为了后续磁盘组扩容实验,释放data3磁盘。
rac1主机上
SQL>drop diskgroup yulu including contents;报个错误提示,说YULU的磁盘组在另一个ASM实例上挂载,我们登录rac2主机将YULU磁盘组dismount
SQL> alter diskgroup yulu dismount;然后再rac1主机上再次执行drop命令即可删除yulu磁盘组
二、ASM磁盘组扩容和删除
2.1.查看ASM磁盘信息
SQL> select group_number,name,path from v$asm_disk;SQL> select group_number,name,state,type from v$asm_diskgroup;2.2.扩容磁盘组
将磁盘data3添加到data磁盘组中。需要注意的是添加的磁盘要大约或者等于原磁盘组单个磁盘的大小,建议是一样大小,并且这个更满足最佳实践。
SQL> alter diskgroup data add disk '/dev/asmdisk/data3';注:可以使用参数rebalance加速,默认平衡rebalance是1,速度会慢一些,最大是11占用很多资源,0表示暂停。在 rebalance 的过程中需要占用部分 process 和磁盘 I/O ,对业务有轻微影响。如果磁盘比较大的情况下可以用下边命令进行添加磁盘。
SQL>alter diskgroup data add disk '/dev/asmdisk/data3' rebalance power 5;
2.3.查询rebalance状态
没有返回值说明rebalance结束!
SQL> select * from v$asm_operation;扩容前:DATA磁盘组为20G
扩容后:DATA磁盘组增加到30G
2.4.删除磁盘组中的磁盘
2.4.1.查询asm磁盘删除前信息
SQL> select group_number,name,path from v$asm_disk;2.4.2.删除asm磁盘组中的磁盘,data3磁盘恢复到未使用状态。
候选(CANDIDATE):表示磁盘可用,后续可以将其添加到对应的磁盘组中。通常我们刚添加的新存储卷,在被ASM初次识别时,就是该种状态
已配置(PROVISIONED):与候选磁盘相同,但该磁盘是使用ASMLib配置的(通常在Linux系统中)。依赖ASMLib 写入磁盘头部的元数据标签(如ORCL:DISK1)。这个标签直接写在磁盘上,和路径无关。
成员(MEMBER):表示磁盘已属于某个磁盘组。
先前(FORMER):表示磁盘以前属于某个磁盘组,但目前不属于任何磁盘组。我们现在即处于该种状态下。
SQL> alter diskgroup data drop disk 'DATA_0002' rebalance power5;查询asm磁盘删除后信息,/dev/asmmdisk/data3的磁盘头状态应为FORMER
SQL>select group_number,name,header_status,path from v$asm_disk;可以看到确实,如此,因为/dev/asmmdisk/data3之前属于DATA磁盘组,但目前不属于任何磁盘组。所有磁盘头的状态自然而然为:先前(FORMER)。
2.5.登录到root用户下进行清洗格式化
# dd if=/dev/zero of=/dev/asmdisk/data3 bs=1M count=1000再次查询/dev/asmmdisk/data3的磁盘头信息,状态由FORMER变更为CANDIDATE(候选状态),/dev/asmmdisk/data3磁盘即恢复正常使用。
SQL> select group_number,name,header_status,path from v$asm_disk;本次文章的主要来自:俞俞记事本,我对其进行修正补充,内容主要说明:针对在没有图形界面的情况下,如何对Oracle 11g的ASM磁盘组进行创建、扩容以及删除。