联系:手机/微信(+86 17813235971) QQ(107644445)
标题:Automatic datafile offline due to write error on
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
由于存储突然掉线导致数据文件无法访问,导致部分数据文件被自动offline
Thu May 17 14:49:03 2018 KCF: read, write or open error, block=0xe93b8 online=1 Thu May 17 14:49:03 2018 KCF: read, write or open error, block=0x24eb65 online=1 file=25 'F:\ORACLE\ORADATA\ORCL\QYSCZH12.ORA' file=28 'F:\ORACLE\ORADATA\ORCL\QYSCZH15.ORA' error=27070 txt: 'OSD-04016: 异步 I/O 请求排队时出错。 O/S-Error: (OS 2) 系统找不到指定的文件。' Automatic datafile offline due to write error on file 25: F:\ORACLE\ORADATA\ORCL\QYSCZH12.ORA Thu May 17 14:49:03 2018 KCF: read, write or open error, block=0x22b0a1 online=1 file=28 'F:\ORACLE\ORADATA\ORCL\QYSCZH15.ORA' error=27070 txt: 'OSD-04016: 异步 I/O 请求排队时出错。 O/S-Error: (OS 2) 系统找不到指定的文件。' Automatic datafile offline due to write error on file 28: F:\ORACLE\ORADATA\ORCL\QYSCZH15.ORA Thu May 17 14:49:03 2018 KCF: read, write or open error, block=0x138def online=1 file=11 'F:\ORACLE\ORADATA\ORCL\QYSCZH4' error=27070 txt: 'OSD-04016: 异步 I/O 请求排队时出错。 O/S-Error: (OS 2) 系统找不到指定的文件。' file=30 'F:\ORACLE\ORADATA\ORCL\QYSCZH17.ORA' file=11 'F:\ORACLE\ORADATA\ORCL\QYSCZH4' error=27070 txt: 'OSD-04016: 异步 I/O 请求排队时出错。 error=27070 txt: 'OSD-04016: 异步 I/O 请求排队时出错。 O/S-Error: (OS 2) 系统找不到指定的文件。' O/S-Error: (OS 2) 系统找不到指定的文件。' …… file=15 'F:\ORACLE\ORADATA\ORCL\QYSCZH6.ORA' error=27072 txt: 'OSD-04008: WriteFile() 失败, 无法写入文件 O/S-Error: (OS 21) 设备未就绪。' Automatic datafile offline due to write error on file 15: F:\ORACLE\ORADATA\ORCL\QYSCZH6.ORA KCF: read, write or open error, block=0xade96 online=1 file=9 'F:\ORACLE\ORADATA\ORCL\QYSCZH2' error=27072 txt: 'OSD-04008: WriteFile() 失败, 无法写入文件 O/S-Error: (OS 21) 设备未就绪。' Automatic datafile offline due to write error on file 9: F:\ORACLE\ORADATA\ORCL\QYSCZH2 Thu May 17 14:49:28 2018 KCF: read, write or open error, block=0x378c66 online=1 file=15 'F:\ORACLE\ORADATA\ORCL\QYSCZH6.ORA' error=27072 txt: 'OSD-04008: WriteFile() 失败, 无法写入文件 O/S-Error: (OS 21) 设备未就绪。' Automatic datafile offline due to write error on file 15: F:\ORACLE\ORADATA\ORCL\QYSCZH6.ORA KCF: read, write or open error, block=0x35f6de online=1 ……
存储掉线是悲剧的起点,按理说数据库是归档模式,存储恢复之后,继续recover datafile,然后online应该问题不大,但是由于客户没有及时处理这个问题(也许业务实时性要求不高,可能挂几个小时也没人知道),导致第二个悲剧发生,删除归档的定时任务把数据库的归档日志给删除了.导致后面存储挂载上来之后,数据文件也无法正常online成功
Tue May 22 16:28:13 2018 ALTER DATABASE RECOVER datafile 'F:\ORACLE\ORADATA\ORCL\QYSCZH' Media Recovery Start Serial Media Recovery started ORA-279 signalled during: ALTER DATABASE RECOVER datafile 'F:\ORACLE\ORADATA\ORCL\QYSCZH' ... Tue May 22 16:28:42 2018 ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log D:\ORALCE\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2018_05_22\O1_MF_1_267346_%U_.ARC Errors with log D:\ORALCE\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2018_05_22\O1_MF_1_267346_%U_.ARC ORA-308 signalled during: ALTER DATABASE RECOVER CONTINUE DEFAULT ... ALTER DATABASE RECOVER CONTINUE DEFAULT Media Recovery Log D:\ORALCE\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2018_05_22\O1_MF_1_267346_%U_.ARC Errors with log D:\ORALCE\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2018_05_22\O1_MF_1_267346_%U_.ARC ORA-308 signalled during: ALTER DATABASE RECOVER CONTINUE DEFAULT ...
通过Oracle数据库异常恢复检查脚本(Oracle Database Recovery Check)脚本检测发现结果如下:
遭遇这种情况,常规方法无法恢复,考虑使用bbed或者其他方法强制online文件,由于存储突然掉线,这样恢复的库可能后续还有大量工作需要处理,最常见的可能有表和index不一致,表的segment header信息和extent实际信息不匹配等