磁盘清理(disk scrub)可以检查逻辑坏块,并使用镜像数据自动修复数据(必须是normal、high冗余级别)。
磁盘清理过程和磁盘组的rebalance相结合,可以减少对I/O资源的使用。清理过程对生产系统的常规I/O影响比较小。
使用"alter diskgroup ... scrub ..."命令可以清理磁盘组、磁盘、或文件:
--repair选项会自动修复坏掉的磁盘;如果没有使用repair选项,scrub只是会检测和报告逻辑坏块
--power选项有四个级别:auto, low, high, max,默认是auto,根据系统自动调节
--wait选项:如果加上wait,清理结束才会返回结果;否则立即返回结果,并将清理操作加入清理队列
--force选项:如果加上force,即使系统i/o负载较高、清理功能选项在系统级别内部被取消了,也会执行
可以通过v$asm_operation查看清理过程
#清理data磁盘组
SQL> alter diskgroup data scrub repair power low wait;
#清理磁盘
SQL> alter diskgroup data scrub disk data01 repair power high force;
#清理并修复文件
SQL> alter diskgroup data scrub file '+DATA/ORCL/DATAFILE/users.256.236584192' repair power high force;