联系:手机/微信(+86 17813235971) QQ(107644445)
标题:记录一次asm disk加入到vg通过恢复直接open库的案例
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
客户在不清楚磁盘被asm disk使用的情况下,直接分区做pv,加入到vg中并且分配给了lv,导致数据库异常
通过操作系统层面分析,确认客户把data磁盘组的一个磁盘给处理掉了,导致数据库报错
WARNING: ASMB force dismounting group 2 (DATA) due to failover SUCCESS: diskgroup DATA was dismounted 2025-05-04T07:03:19.910082+08:00 KCF: read, write or open error, block=0x201544 online=1 file=102 '+DATA/ORCL/F7D939D6DBE06C71E053C30114AC1F10/DATAFILE/xifenfei_61.dbf' error=15078 txt: '' 2025-05-04T07:03:19.918972+08:00 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_dbwc_18507.trc: 2025-05-04T07:03:19.952045+08:00 KCF: read, write or open error, block=0x2013e7 online=1 file=102 '+DATA/ORCL/F7D939D6DBE06C71E053C30114AC1F10/DATAFILE/xifenfei_61.dbf' error=15078 txt: '' 2025-05-04T07:03:19.964538+08:00 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_dbw7_18486.trc: 2025-05-04T07:03:19.967133+08:00 KCF: read, write or open error, block=0x230e71 online=1 file=105 '+DATA/ORCL/F7D939D6DBE06C71E053C30114AC1F10/DATAFILE/xifenfei_64.dbf' error=15078 txt: '' 2025-05-04T07:03:19.973289+08:00 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_dbw2_18466.trc: 2025-05-04T07:03:19.978514+08:00 KCF: read, write or open error, block=0x1f6e91 online=1 file=86 '+DATA/ORCL/F7D939D6DBE06C71E053C30114AC1F10/DATAFILE/xifenfei_52.dbf' error=15078 txt: '' 2025-05-04T07:03:19.991060+08:00 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_dbwd_18511.trc: 2025-05-04T07:03:19.995762+08:00 KCF: read, write or open error, block=0x7f8 online=1 file=15 '+DATA/ORCL/F7D939D6DBE06C71E053C30114AC1F10/DATAFILE/undotbs01.dbf' error=15078 txt: '' 2025-05-04T07:03:20.006862+08:00 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_dbwa_18498.trc: 2025-05-04T07:03:20.020739+08:00 Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_imr0_18937.trc:
这个客户比较幸运,处理该磁盘之后,没有往对应的lv中写入太多数据,导致覆盖部分很少
[root@rac01 rules.d]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/mapper/nlas-root 800G 272G 528G 34% / devtmpfs 284G 0 284G 0% /dev tmpfs 284G 637M 283G 1% /dev/shm tmpfs 284G 4.0G 280G 2% /run tmpfs 284G 0 284G 0% /sys/fs/cgroup /dev/mapper/nlas-home 200G 64M 200G 1% /home /dev/sda1 197M 158M 40M 80% /boot tmpfs 57G 40K 57G 1% /run/user/0 tmpfs 57G 48K 57G 1% /run/user/1000 [root@rac01 rules.d]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 nlas lvm2 a-- 564.00g 0 /dev/sdb1 nlas lvm2 a-- <2.00t 1.51t [root@rac01 rules.d]# vgs VG #PV #LV #SN Attr VSize VFree nlas 2 3 0 wz--n- 2.55t 1.51t [root@rac01 rules.d]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home nlas -wi-ao---- 200.00g root nlas -wi-ao---- 800.00g swap nlas -wi-ao---- 64.00g
通过底层对磁盘进行分析,发现备份的磁盘头均以损坏,通过深入分析确认f1b1在sdb磁盘的第10个au上,通过相关信息,使用dul工具加载磁盘组,并分析元数据信息,发现恢复数据需要的元数据都可以正常加载
直接使用dul抽取数据到文件系统,然后open数据库成功

然后通过rman 检测坏块(3T多的库只有不到5000个坏块,相对来说效果非常好),对于坏块对象进行处理,完美完成本次恢复工作.对于这次能够有这样好的恢复效果有几个因素:
1)asm disk 加入到vg,并分配给lv之后,立刻停止写入操作,避免了因为写入数据而覆盖asm 磁盘的带来的风险
2)由于是19c库,默认au为4M,使得数据库文件数据相对比较靠后,覆盖几率小了一点
3)由于文件系统是xfs,相对覆盖比ext4会少很多
4)是云环境的ssd磁盘,没有触发trim功能
以前类似asm disk异常恢复的相关case汇总:
asm磁盘加入vg恢复
asm磁盘dd破坏恢复
asm磁盘分区丢失恢复
pvid=yes导致asm无法mount
win asm disk header 异常恢复
又一例asm disk 加入vg故障
pvcreate asm disk导致asm磁盘组异常恢复
asm disk被加入到另外一个磁盘组故障恢复
再一例asm disk被误加入vg并且扩容lv恢复
再一起asm disk被格式化成ext3文件系统故障恢复
一次完美的asm disk被格式化ntfs恢复
asm disk误设置pvid导致asm diskgroup无法mount恢复
asm disk被分区,格式化为ext4恢复
oracle asm disk格式化恢复—格式化为ext4文件系统
分享oracleasm createdisk重新创建asm disk后数据0丢失恢复案例