windows系统 Oracle数据文件大小为0的恢复例子

一个网友的数据库部署在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,感觉总是会有一些莫名其妙的问题发生,而且很难搞。还有,数据库一定要归档模式,定期物理备份,否则
一旦出现故障,就是灾难性的。

时间: 2024-10-06 22:05:44

windows系统 Oracle数据文件大小为0的恢复例子的相关文章

【FTP】java FTPClient 文件上传内容为空,文件大小为0

问题:如题所述,使用FTPClient上传至FTP服务器, 表现如下:①文件大小为0 ②上传很小的文件,但是要花费很长的时间,20K要花费2分钟甚至更久 ③没有任何的报错,没有任何的乱码 解决方法: [参考:http://blog.csdn.net/tengdazhang770960436/article/details/43274001] 如果你在本地的 Java 项目里面去用 FtpClient 上传文件,然后虽然文件上传上去了,但是文件里面没有内容,那么这说明你的机器防火墙设置有问题如下图

crond-centos6.5 定时备份mysql 导出mysql数据大小为0

问题描述 centos6.5 定时备份mysql 导出mysql数据大小为0 centos定时任务 执行mysql数据备份 在/home/www/shell/ 写了个shell脚本 加入执行权限 定时执行的时候 到处的sql文件大小为0 且没有错误log输出 如果单独执行./xxx.sh 导出的sql正常 问题蛮怪 不知道有没有碰到的

linux-ftp上传文件后大小为0

问题描述 ftp上传文件后大小为0 ftp程序上传 本地win 到linux a 正常 ftp命令上传 linux b 到linux a 正常 ftp程序上传 linux b 到linux a 不正常 文件上传后0字节,这是怎么回事? 解决方案 ftp上传文件(jftp) 解决方案二: ftp命令上传 linux b 到linux a 正常 ftp程序上传 linux b 到linux a 不正常 什么意思?有时正常,有时不正常? 网络不稳定吧. 解决方案三: 命令和程序导致的结果不一样 那是不

[20121115]关于oracle数据文件的第1块.txt

[20121115]关于oracle数据文件的第1块.txt 每个数据文件的第一个块(block 0)是OS block header,在数据库中查询不到信息,记录的是OS信息,以及文件大小的等信息.今天做一些简单的研究. SQL> select * from v$version where rownum BANNER -------------------------------------------------------------------------------- Oracle D

收缩Oracle数据文件

      最近有网友提到收缩Oracle数据文件的问题,这是DBA经常碰到的一个常见问题.通常我们需要收缩相应的数据文件以减少来自磁盘空间的压力以及提高数据库的整体性能.但这并非对于所有情形都是适用的,尤其是生产环境.因为生产环境数据清洗相当较少,因此空间浪费也比较小,而且一旦收缩之后又要重新自动扩展数据文件,浪费系统资源.对于UAT,DEV环境,多DB,磁盘空间压力大的情形,收缩一下非常有必要.勒紧裤带过日子也是常有的事情,哈哈.总之收缩数据文件会使得磁盘空间得以释放以及加快数据迁移,RMA

[20161111]数据文件的第0块2.txt

[20161111]数据文件的第0块2.txt --如果数据文件的第0块是OS块信息,以前的测试如果rman做备份集都不会备份. --如果这块损坏,里面讲问题不大,你甚至可以不修复,如果在线resize就ok了,当然重建控制文件就出现问题. --而且解决也很简单,就是建立一样大小的数据文件,然后copy回去.做一个测试例子: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ---

[20161110]数据文件的第0块.txt

[20161110]数据文件的第0块.txt --如果数据文件的第0块是OS块信息,以前的测试如果rman做备份集都不会备份. --如果这块损坏,里面讲问题不大,你甚至可以不修复,当然重建控制文件就出现问题. --而且解决也很简单,就是建立一样大小的数据文件,然后copy回去.做一个测试例子: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------------------

让windows系统人性化的12大设置

  1.退格键在浏览器中的返回功能 在默认情况下,使用网页浏览器时按下退格键会返回到上一个页面,常常会因为输入焦点切换退格误操作而丢失正在进行的工作,令人十分烦恼.一些浏览器如Chrome或火狐,可以通过设置或安装插件更改,但是如果你使用IE或safari,就只有自己小心了. 2.隐藏文件扩展名 或许是为了防止误操作,在Windows系统中,文件扩展名被微软隐藏了起来,但这十分不方便,尤其是在你拥有多个相同文件的PDF或是word文档时.好在我们可以任务管理中的文件夹选项中开启扩展名显示. 3.

EXT4文件系统上ORACLE数据文件误删除的对应恢复方法

如果EXT4文件系统上的ORACLE数据文件被误删除了,那么一般可以考虑下面2种恢复方式: 使用testdisk工具从文件系统角度恢复数据文件 使用prmscan工具从oracle 数据块角度恢复数据文件 这里我们介绍使用testdisk的恢复ext4上数据文件的步骤: 删除users数据文件   [oracle@dbdao01 ~]$ df -h Filesystem            Size  Used Avail Use% Mounted on /dev/mapper/VolGrou