oracle 9i2 ,windows2000,非正常关机重启oracle无法启动,出错如下:
ERROR 位于第 1 行:
ORA-01122: 数据库文件 6 验证失败
ORA-01110: 数据文件 6: 'D:\ORACLE\ORADATA\TEST\USERS01.DBF'
ORA-01200: 171200的实际文件大小小于171520块的正确大小非归档模式,没有备份
请高手指点如何恢复?

解决方案 »

  1.   

    ORA-01122: database file %s failed verification check.
    *Cause:  The information in this file is inconsistent with information from the controlfile. See accompanying message for reason.
    *Action: Make certain that the db files and controlfiles are the correct files for this database.ORA-01110: data file %s: '%s'.
    *Cause:  Reporting file name for details of another error
    *Action: See associated error messageORA-01200: actual file size of %s is smaller than correct size of %s blocks.
    *Cause:  The size of the file as returned by the operating system is smaller than the size of the file as indicated in the file header and the controlfile. Somehow the file has been truncated. Maybe it is the result of a half completed copy.
    *Action: Restore a good copy of the data file and do recovery as needed.
      

  2.   

    操作可以参考 http://www.itpub.net/viewthread.php?tid=924394&extra=&page=2
      

  3.   

    应该是控制文件与数据文件信息不一致导致出错.
    没有备份那么会丢失小部分数据可以试试
    recover database until cancel;
      

  4.   

    SQL> recover database until cancel; 
    ORA-00283: 恢复会话因错误而取消
    ORA-01110: 数据文件 6: 'D:\ORACLE\ORADATA\TEST\USERS01.DBF'
    ORA-01122: 数据库文件 6 验证失败
    ORA-01110: 数据文件 6: 'D:\ORACLE\ORADATA\TEST\USERS01.DBF'
    ORA-01200: 171200的实际文件大小小于171520块的正确大小
    不行啊
      

  5.   


    这个是undo坏了,而且方法是删掉重建,我出的问题是user表空间,里面有业务数据,解决方法不能一样吧
      

  6.   

    如果recover不行,感觉上是数据文件本身的损坏。
    之前有没有物理备份,还是先想办法恢复数据文件吧。
      

  7.   

    参见 
    http://hi.baidu.com/jdsnhan/blog/item/69c8cab15968d051092302fc.html
      

  8.   


    这个还是针对undo表空间的,undo可以删掉重建,但是有业务数据的用户表空间文件是不能删掉重建的,那样数据都丢了,没有意义了
      

  9.   

    先DBV看看这个文件是什么情况你这个文件有没有转存过其他的操作系统?
      

  10.   

    最好是叫你们DBA 
    dump 控制文件头和dump 数据文件头作一下比较.先作一下这里的校验是否一样.以及看看v$datafile中的大小,和v$backup中文件的状态信息.
    只能帮这么多了.具体这些信息还得你自己去看