联系:手机/微信(+86 17813235971) QQ(107644445)
标题:误删除asm disk导致磁盘组无法mount数据库恢复
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
客户误删除asm disk两个lun(由于这个是这个存储的特殊性,删除lun之后,存储层面无法恢复出来对应的lun数据,导致客户彻底放弃了硬件层面恢复的可能性.),导致asm磁盘组无法正常mount
SQL> ALTER DISKGROUP DATA MOUNT /* asm agent *//* {1:27928:40938} */ NOTE: cache registered group DATA number=3 incarn=0x60fa38b1 NOTE: cache began mount (first) of group DATA number=3 incarn=0x60fa38b1 NOTE: Assigning number (3,0) to disk (/dev/rdisk/VD02_DBF) NOTE: Assigning number (3,1) to disk (/dev/rdisk/VD03_DBF) NOTE: Assigning number (3,2) to disk (/dev/rdisk/VD04_DBF) NOTE: Assigning number (3,3) to disk (/dev/rdisk/VD05_DBF) NOTE: Assigning number (3,4) to disk (/dev/rdisk/VD06_DBF) Thu Dec 29 10:21:20 2022 NOTE: GMON heartbeating for grp 3 GMON querying group 3 at 29 for pid 29, osid 3770 NOTE: Assigning number (3,5) to disk () NOTE: Assigning number (3,6) to disk () GMON querying group 3 at 30 for pid 29, osid 3770 NOTE: cache dismounting (clean) group 3/0x60FA38B1 (DATA) NOTE: messaging CKPT to quiesce pins Unix process pid: 3770, image: oracle@db1 (TNS V1-V3) NOTE: dbwr not being msg'd to dismount NOTE: lgwr not being msg'd to dismount NOTE: cache dismounted group 3/0x60FA38B1 (DATA) NOTE: cache ending mount (fail) of group DATA number=3 incarn=0x60fa38b1 NOTE: cache deleting context for group DATA 3/0x60fa38b1 GMON dismounting group 3 at 31 for pid 29, osid 3770 NOTE: Disk DATA_0000 in mode 0x7f marked for de-assignment NOTE: Disk DATA_0001 in mode 0x7f marked for de-assignment NOTE: Disk DATA_0002 in mode 0x7f marked for de-assignment NOTE: Disk DATA_0003 in mode 0x7f marked for de-assignment NOTE: Disk DATA_0004 in mode 0x7f marked for de-assignment NOTE: Disk in mode 0x7f marked for de-assignment NOTE: Disk in mode 0x7f marked for de-assignment ERROR: diskgroup DATA was not mounted ORA-15032: not all alterations performed ORA-15040: diskgroup is incomplete ORA-15042: ASM disk "6" is missing from group number "3" ORA-15042: ASM disk "5" is missing from group number "3" ERROR: ALTER DISKGROUP DATA MOUNT /* asm agent *//* {1:27928:40938} */
这个客户应该有三个磁盘组存放数据文件,其中data磁盘组的7个磁盘被删除了2个lun,导致data磁盘组无法mount,客户希望尽可能恢复其中数据,对于这种情况,由于2个lun完全丢失,直接通过dul之类的工具拷贝asm数据文件恢复不可行(因为很多asm的元数据也会在丢失的lun里面,导致拷贝出来的数据文件异常太多,恢复效果会很差),对于这种情况采用asm disk header 彻底损坏恢复的恢复方法,尽可能的从block层面恢复出来所有可以恢复的数据块中的数据
由于这个其中涉及了system表空间(oracle损坏严重),结合客户几年前的一个system历史备份文件,恢复出来字典,然后尽可能的恢复数据文件,最终最大限度给客户恢复数据,让客户的损失降到最低.