ASM恢复故障组

参考文档:
How To Add Back An ASM Disk or Failgroup (Normal or High Redundancy) After A Transient Failure Occurred Or When The DISK_REPAIR_TIME Attribute Expired (10.1 to 12.1)? (Doc ID 946213.1)

当故障组由于磁盘fail被删除时,怎么恢复?
情况一:
当磁盘意外断开,导致v$ASM_DISK中离线挂起时,此时磁盘未受到损坏,那么可以直接使用FORCE选项把磁盘添加回去,因为还有原来的磁盘头信息
假如OCR盘也因为在故障组中被离线时,这个功能简直太棒了,我不会说以前遇到过,然后我愣生生的给重建了OCR磁盘组的
查看磁盘的状态:
select group_number,disk_number,name,state,path,header_status from v$asm_disk;
select  disk_number, name,path,failgroup,mount_status,state,path,header_status, group_number  from v$asm_disk order by group_number,failgroup;

看下图:这个状态是FG1的故障组被离线,并且FG1的OCR也被离线
ASM恢复故障组_第1张图片



[grid@rac1 ~]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   312f8axxxxxxxxxxxxxxxx74b8babe7c (/u01/asm-disk/h2ocr) [OCR]
 2. ONLINE   99dd51xxxxxxxxxxxxxxxx6c7abcb6d1 (/u01/asm-disk/h3ocr) [OCR]
Located 2 voting disk(s).


解决方案:

ALTER DISKGROUP 磁盘组名 ADD FAILGROUP 故障组名 DISK '磁盘路径' FORCE REBALANCE POWER  ;
例如:
ALTER DISKGROUP DATAJIXIE ADD FAILGROUP FG1 DISK '/u01/asm-disk/h1data' FORCE REBALANCE POWER 5;
ALTER DISKGROUP DATAPCIE ADD FAILGROUP FG1 DISK '/u01/asm-disk/h1pcie3' FORCE, '/u01/asm-disk/h1pcie1' FORCE, '/u01/asm-disk/h1pcie2' FORCE REBALANCE POWER 5;
ALTER DISKGROUP DATASSD ADD FAILGROUP FG1 DISK '/u01/asm-disk/h1ssd' FORCE REBALANCE POWER 5;
ALTER DISKGROUP OCR ADD FAILGROUP OCR_0000 DISK '/u01/asm-disk/h1ocr' FORCE REBALANCE POWER 5;

注意我们不是直接恢复一个磁盘组就好了,而是需要一点点重新将FG1中的磁盘重新加入到故障组中,这个期间一定需要注意保证磁盘组的正确,并且所有磁盘都需要加上

添加磁盘时,请确保指定以前使用的故障组名称。 添加这些磁盘启动重新平衡。 一旦通过从失败的故障组中添加磁盘完成重新平衡,离线挂起的条目应该消失。
在适当的情况下,您还可以使用磁盘添加模式,如'/dev/rdsk/c*'; 只需确保您正在添加的磁盘的模式和正确的故障组名称。

将磁盘添加到故障组中时,需要考虑以下几点:
  1. 确保使用与存储失败前相同的故障组添加磁盘。
  2. 如果在磁盘故障时,要添加到故障组的磁盘已被物理替换(换了盘),则ASM磁盘头不再存在。 在这种情况下,不能使用FORCE选项将磁盘添加回故障组; 必须使用标准的add disk命令添加它:
    1.  SQL> ALTER DISKGROUP DATA ADD FAILGROUP SAN2 DISK '/dev/rdsk/c3t13d3s4' REBALANCE POWER ;

If you are providing a disk name when adding back to the failgroup, ensure that the disk name is different from the previous disk name. Currently, ASM does not support adding a disk back using the same disk name in the diskgroup [This behavior exists till 11.2.0.3, from 11.2.0.4 we can give the same disk name if required]. It is a best practice to let ASM generate a new disk name for you. If you are using ASMLIB, the default name is provided by the ASMLIB disk name stamped by oracleasm. In such cases, the user must explicitly specify a new disk name as part of the add disk. 
(大意:当版本小于等于11.2.0.3时,不能使用之前使用过的asm磁盘名字,但是11.2.0.4就可以用了,我们强烈推荐让ASM自动生成新的磁盘名称,当使用的是ASMLIB时, 则默认名称由oracleasm所标记的ASMLIB磁盘名称提供,用户添加磁盘时,必须指定新的磁盘名称


当磁盘被添加到第二个故障组时,rebalance恢复冗余,hang的磁盘也被删除。请注意,添加磁盘数量不足可能导致在重新平衡期间磁盘组空间不足。添加的存储必须具有足够的容量来容纳在幸存故障组中分配的所有数据的副本。另外需要注意,当故障组的一部分磁盘离线时,可能处于如下状态。例如,如果每个故障组中有10个磁盘,其中9个在一个故障组中failure,那么幸存的磁盘不太可能拥有每个磁盘的副本,结果rebalance用完了空间。避免这种情况的简单方法是干掉这个幸存的磁盘。

注意:在10g上,需要手动重新平衡操作来重新启动磁盘组重新平衡并驱逐磁盘,因为10g(如果磁盘驱逐出现错误,例如挂起)ASM将不会自动重新启动ASM重新平衡(这已经是 在11g和12c上增强),因此您需要重新启动手动重新平衡操作,如下所示:
SQL> alter diskgroup rebalance power 11;


你可能感兴趣的:(Oracle)