本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的Oracle技术博客
本文链接地址: windows Oracle数据文件大小为0的恢复case
一个网友的数据库部署在windows环境,可能是由于存储问题或者windows本身文件系统的问题,出现IO问题之后,最后数据库重启之后,竟然无法启动了,报错无法读取其中的几个文件,alert log如下:
Nov 14 12:33:12 2014 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m001_1704.trc (incident=60577): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INC_METER_INFO.ams], [16], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 17) 系统无法将文件移到不同的磁盘驱动器。 ...... ...... Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_4676.trc (incident=92621): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCCKEY.ams], [21], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 22) 设备不识别此命令。 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_4676.trc (incident=92622): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCCKEY.ams], [22], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 23) 数据错误(循环冗余检查)。 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_4676.trc (incident=92623): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCCKEY.ams], [25], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 26) 无法访问指定的磁盘或软盘。 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_4676.trc (incident=92624): .......... ORA-00600: internal error code, arguments: [17182], [0x00DCD3560], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [17147], [0x00DCD3560], [], [], [], [], [], [], [], [], [], [] Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92644\orcl_m000_3176_i92644.trc. ........ Starting up: Oracle Database 11g Release 11.2.0.1.0 - 64bit Production. Using parameter settings in server-side spfile D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA ........ Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92872): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92872\orcl_m000_6008_i92872.trc Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92873): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92873\orcl_m000_6008_i92873.trc Successful mount of redo thread 1, with mount id 1391358302 Trace dumping is performing id=[cdmp_20141114143618] Database mounted in Exclusive Mode Lost write protection disabled Trace dumping is performing id=[cdmp_20141114143619] Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92874): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 ORA-48101: error encountered when attempting to read a file [block] [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams] [0] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92874\orcl_m000_6008_i92874.trc Completed: ALTER DATABASE MOUNT Fri Nov 14 14:36:20 2014 ALTER DATABASE OPEN Read of datafile 'D:\ORACLE\ORADATA\ORCL\ZL9BASEITEM.DBF' (fno 6) header failed with ORA-01200 Rereading datafile 6 header failed with ORA-01200 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_ora_2876.trc: ORA-01122: 数据库文件 6 验证失败 ORA-01110: 数据文件 6: 'D:\ORACLE\ORADATA\ORCL\ZL9BASEITEM.DBF' ORA-01200: 10240 的实际文件大小小于 44800 块的正确大小 ORA-1122 signalled during: ALTER DATABASE OPEN... Trace dumping is performing id=[cdmp_20141114143621] Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92875): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 ORA-48101: error encountered when attempting to read a file [block] [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams] [0] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92875\orcl_m000_6008_i92875.trc Fri Nov 14 14:36:21 2014 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m001_5816.trc (incident=92880): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\HM_RUN.ams], [26], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 27) 驱动器找不到请求的扇区。 Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_92880\orcl_m001_5816_i92880.trc Trace dumping is performing id=[cdmp_20141114143622] Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_6008.trc (incident=92876): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 ORA-48101: error encountered when attempting to read a file [block] [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams] [0] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 Fri Nov 14 14:37:18 2014 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_5340.trc (incident=92877): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_5340.trc (incident=92878): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCCKEY.ams], [25], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 26) 无法访问指定的磁盘或软盘。 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_5340.trc (incident=92879): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INC_METER_INFO.ams], [16], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 17) 系统无法将文件移到不同的磁盘驱动器。 ....... ORA-00600: internal error code, arguments: [17114], [0x010F35330], [], [], [], [], [], [], [], [], [], [] ORA-48312: Sweep incident 92687 staging file failed ORA-00600: internal error code, arguments: [17182], [0x010F35330], [], [], [], [], [], [], [], [], [], [] ORA-00600: internal error code, arguments: [17147], [0x010F35330], [], [], [], [], [], [], [], [], [], [] Fri Nov 14 14:38:18 2014 .......... .......... Fri Nov 14 14:53:15 2014 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_3144.trc (incident=108895): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。 Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_108895\orcl_m000_3144_i108895.trc Successful mount of redo thread 1, with mount id 1391370839 Database mounted in Exclusive Mode Lost write protection disabled Completed: alter database mount exclusive alter database open Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_dbw0_2808.trc: ORA-01157: cannot identify/lock data file 8 - see DBWR trace file ORA-01110: data file 8: 'D:\ORACLE\ORADATA\ORCL\ZL9EXPENSE.DBF' ORA-27047: unable to read the header block of file OSD-04006: ReadFile() 失败, 无法读取文件 O/S-Error: (OS 38) 已到文件结尾。 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_dbw0_2808.trc: ORA-01157: cannot identify/lock data file 13 - see DBWR trace file ORA-01110: data file 13: 'D:\ORACLE\ORADATA\ORCL\ZL9EPRDAT.DBF' ORA-27047: unable to read the header block of file OSD-04006: ReadFile() 失败, 无法读取文件 O/S-Error: (OS 38) 已到文件结尾。 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_dbw0_2808.trc: ORA-01157: cannot identify/lock data file 15 - see DBWR trace file ORA-01110: data file 15: 'D:\ORACLE\ORADATA\ORCL\ZL9INDEXHIS.DBF' ORA-27047: unable to read the header block of file OSD-04006: ReadFile() 失败, 无法读取文件 O/S-Error: (OS 38) 已到文件结尾。 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_dbw0_2808.trc: ORA-01157: cannot identify/lock data file 16 - see DBWR trace file ORA-01110: data file 16: 'D:\ORACLE\ORADATA\ORCL\ZL9INDEXCIS.DBF' ORA-27047: unable to read the header block of file OSD-04006: ReadFile() 失败, 无法读取文件 O/S-Error: (OS 38) 已到文件结尾。 Read of datafile 'D:\ORACLE\ORADATA\ORCL\ZL9BASEITEM.DBF' (fno 6) header failed with ORA-01200 Rereading datafile 6 header failed with ORA-01200 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_ora_3380.trc: ORA-01122: ????? 6 ???? ORA-01110: ???? 6: 'D:\ORACLE\ORADATA\ORCL\ZL9BASEITEM.DBF' ORA-01200: 10240 ????????? 44800 ?????? ORA-1122 signalled during: alter database open... Fri Nov 14 14:53:16 2014 Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m001_3752.trc (incident=108903): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\HM_RUN.ams], [26], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 27) 驱动器找不到请求的扇区。 Incident details in: d:\oracle\diag\rdbms\orcl\orcl\incident\incdir_108903\orcl_m001_3752_i108903.trc Errors in file d:\oracle\diag\rdbms\orcl\orcl\trace\orcl_m000_3144.trc (incident=108896): ORA-00700: soft internal error, arguments: [dbgrfrbf_1], [d:\oracle\diag\rdbms\orcl\orcl\metadata\INCIDENT.ams], [19], [1], [], [], [], [], [], [], [], [] ORA-48102: encountered the end-of-file when reading the file OSD-04026: 传递的参数无效。 O/S-Error: (OS 20) 系统找不到指定的设备。
我们可以看到,重启之前Oracle就开始报ORA-00700,ORA-00600以及ORA-48102错误。重启之后的错误更是郁闷,如下:
ORA-01157: cannot identify/lock data file 8 - see DBWR trace file ORA-01110: data file 8: 'D:\ORACLE\ORADATA\ORCL\ZL9EXPENSE.DBF' ORA-27047: unable to read the header block of file OSD-04006: ReadFile() 失败, 无法读取文件 O/S-Error: (OS 38) 已到文件结尾。
很明显这是文件异常了,从操作系统查看,发现这4个文件大小居然为0了。 这显然是不正常的。 实际上我检查发现还有另外2个文件也是有问题,
可能是文件头损坏了,通过dbv校验直接报错。
最后经过处理之后,成功帮网友抢救了数据,据说最后只是发现某个核心表丢了一点数据,损失不大。
不推荐使用windows来跑Oracle,感觉总是会有一些莫名其妙的问题发生,而且很难搞。还有,数据库一定要归档模式,定期物理备份,否则
一旦出现故障,就是灾难性的。
Related posts: