其中提示错误号为ora-01172 
我怀疑有关文件坏了,怎么才能查出是那个文件坏了,怎么修复?

解决方案 »

  1.   

    8i :
    C:>svrmgrl
    SVRMGR>startup9i:
    C:>Sqlplus system/manager
    SQL>startup
      

  2.   

    或:
    看看在 
    控制面板 -> 管理工具 -> 服务 —> OracleServiceOraData 有没有启动~   
    (OraData 是数据库名,不同的机子都不同呀,在安装数据库时定的^&^)启动就可以了~  
    如果有什么出错的话~  就直接打开 DBA Studio 用 system/manager 以 SysDBA 的身份登录。
    (Oracle 8i 的话,最好用 internal/oracle 登录)之后选 例程-> 数据库 -> 启动 (然后单击"应用",就可以启动啦)
    通常这种都是 Oracle 与 Windows 之间的"沟通"不够。
    也就是说是 Oracle/Windows 的"老毛病".设置“自动”的话,是可以“自动”启动。
    但如果显示"启动"之后,一直没有其它的反应的话,意思就是在启动的过程中出现错误。
    不过,只是 Oracle 与 Windows 服务之间的问题,只要用以上方法来启动 Oracle 的话,
    就没什么问题啦...还有一种,设置“手动”的话,也会出现错误,只要用以上的方法也可以搞定!
      

  3.   

    如果都启动不了的话,数据文件问题.http://www.oradb.net/oraerr.htm
      

  4.   

    ORA-01172 recovery of thread string stuck at block string of file stringCause: Crash recovery or instance recovery could not apply a change to a block because it was not the next change. This can happen if the block was corrupted and then repaired during recovery.Action: Do a RECOVER DATAFILE for the file containing the block. If this does not resolve the problem, then restore the file from a backup and recover it.
      

  5.   

    ORA-01172 recovery of thread string stuck at block string of file stringCause: Crash recovery or instance recovery could not apply a change to a block because it was not the next change. This can happen if the block was corrupted and then repaired during recovery.Action: Do a RECOVER DATAFILE for the file containing the block. If this does not resolve the problem, then restore the file from a backup and recover it.
      

  6.   

    你先把数据库1)shutdown
    2)start mount
    3)恢复损害的文件
      

  7.   

    设置字符集查看错误提示
    alter session set nls_language=american查看是什么数据文件损坏了,如果是用户的数据文件,可以offline该数据文件
      

  8.   

    首先是数据库没有启动,   SVRMGRL>CONNECT INTERNAL
       SVRMGRL>STARTUP MOUNT
       SVRMGRL>ALTER DATABASE OPEN;
    查看错误的信息,最好先冷备分数据库。
      

  9.   

    修改ORAHOME\ora81\network\ADMIN\sqlnet.ora文件,把SQLNET.AUTHENTICATION_SERVICES= (NTS)修改为SQLNET.AUTHENTICATION_SERVICES= (NONE),就可以解决这个问题
    但是我不知道原理是什么
    有知道的请告知.