本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger 的Oracle技术博客 本文链接地址: windows Oracle数据文件大小为0的恢复case 一个网友的数据库部署在windows环境,可能是由于存储问题或者windows本身文件系统的问题,出现IO问题之

本站文章除注明转载外,均为本站原创: 转载自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:

  1. 一次远程协助的恢复 遇到异灵事件
  2. 最近迁移恢复中遇到的几个小问题
  3. One recover case!
  4. 11gR2 dataguard 备库文件损坏处理一例
  5. 数据库open报错ORA-01555: snapshot too old

09-18 11:34