在客户端update一个表时候,突然失败。之后,oracle可以启动可以装载,但是不能打开,老是出现:“oracle例程终止,强行断开连接”,请高手指点为什么?能解决吗?能恢复到以前状态也行。如何恢复呀?

解决方案 »

  1.   


       冷备份你的数据库。因为下面的操作会对你的数据库照成
    不可恢复的操作。
       你在服务器端,用SVRMGRL命令
    SVRMGRL> connect internal;
    SVRMGRL> SHUTDOWN IMMEDIATE;   -- or NORMAL
    SVRMGRL> STARTUP MOUNT;
    SVRMGRL> recover database until time 'YYYY-MM-DD:hh:mm:ss';--'能启动数据库的最进时间‘
    SVRMGRL> ALTER DATABASE OPEN resetlogs;
      

  2.   

    oracle9i里面没有svamgl,也没有internal用户
      

  3.   

    哦!是9I是吧,你没有说清楚使用SQLPLUS
     SQLPLUS /nolog
     SQL>CONNECT AS SYSDBA
     
    SQL> SHUTDOWN IMMEDIATE;   -- or NORMAL
    SQL> STARTUP MOUNT;
    SQL> recover database until time 'YYYY-MM-DD:hh:mm:ss';--'能启动数据库的最进时间‘
    SQL> ALTER DATABASE OPEN resetlogs;
      

  4.   

    谢谢飘大虾。但是
    恢复时出现:0ra-01547:警告:Recover 成功,但open resetlogs将出现如下错误:
                 0ra-01194:文件1需要更多的恢复来保持一致性。
    什么意思,我又恢复了n编还是不行。另外我因急用该数据,相临时创建一个例程,然后让它的一个表空间增加
    一个数据文件,即文件1(原数据文件),但是没成功。不知道,会不会对
    文件1造成损害呀。
      

  5.   

    alter database open restlogs 这条命令执行后,redolog中的scn已经
    变了.再恢复n遍估计也没用了.
      

  6.   

    归档日志文件不是最新的,scn不一致,估计用了过旧的归档日志,没什么办法
    只能用冷备份还原数据库吧,这会掉失还原前的数据
      

  7.   

    先查ALERT
    在UPDATE的时候出问题,应该是磁盘IO出问题了,在OS层上查查磁盘,
    在用ORACLE工具查数据文件的坏块,
    如果都没问题,就多试几便打开数据库
    打不开:恢复以前的备份
    没备份:GOD BLESS YOU