SQL> connect system/sys as sysdba
已连接。
SQL> shutdown mount
SP2-0717: 非法的 SHUTDOWN 选项
SQL> shutdown normal
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。Total System Global Area  535662592 bytes
Fixed Size                  1375792 bytes
Variable Size             289407440 bytes
Database Buffers          239075328 bytes
Redo Buffers                5804032 bytes
数据库装载完毕。
SQL> alter database open
  2
SQL> recovery database
SP2-0734: 未知的命令开头 "recovery d..." - 忽略了剩余的行。
SQL> recover database
ORA-00283: recovery session canceled due to errors
ORA-00354: corrupt redo log block header
ORA-00353: log corruption near block 6644 change 51588209569078 time 03/04/2013
09:46:34
ORA-00312: online log 2 thread 1: 'D:\ORGDB\ORADATA\IMG\REDO02.LOG'
上面是我的操作过程ora-01033

解决方案 »

  1.   

    请供以下资料:
    1、是不是在Archive Log模式
    2、select * from v$log
    3、select * from v$logfile
      

  2.   

    SQL> select * from v$log;    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS ARC
    ---------- ---------- ---------- ---------- ---------- ---------- ---
    STATUS           FIRST_CHANGE# FIRST_TIME     NEXT_CHANGE# NEXT_TIME
    ---------------- ------------- -------------- ------------ --------------
             1          1          0   10485760        512          1 YES
    UNUSED                       0                           0         3          1          0   10485760        512          1 YES
    CURRENT                      0                           0         2          1          0   10485760        512          1 YES
    UNUSED                       0                           0
    SQL> select * from v$logfile;    GROUP# STATUS  TYPE
    ---------- ------- -------
    MEMBER
    --------------------------------------------------------------------------------IS_
    ---
             3 STALE   ONLINE
    D:\ORGDB\ORADATA\IMG\REDO03.LOG
    NO         2 STALE   ONLINE
    D:\ORGDB\ORADATA\IMG\REDO02.LOG
    NO    GROUP# STATUS  TYPE
    ---------- ------- -------
    MEMBER
    --------------------------------------------------------------------------------IS_
    ---         1 STALE   ONLINE
    D:\ORGDB\ORADATA\IMG\REDO01.LOG
    NO
      

  3.   

    那个archive log模式 我不了解,查了查 ,下面是我电脑上的信息:
    SQL> archive log list
    数据库日志模式            存档模式
    自动存档             启用
    存档终点            USE_DB_RECOVERY_FILE_DEST
    最早的联机日志序列     0
    下一个存档日志序列   0
    当前日志序列           0
      

  4.   


    网上关于在线日志损坏的恢复方法已经很多了。
    先试着recover database until cancel;
    alter database open resetlogs;
    如果打不开。pfile增加_allow_resetlogs_corruption=true条目。
    recover database until cancel;
    alter database open resetlogs;
    如果还报错,特别的是Ora-00600 4194经常遇到。
    那么pfile再增加隐含参数。
    ._corrupted_rollback_segments='_SYSSMU1$',这里的回滚段根据你的情况而定,如果有多个以逗号隔开。
    recover database until cancel;
    alter database open resetlogs;还可能会报错,特别是ORA-600 2662。
    alter session set events '10015 trace name adjust_scn level x';
    recover database until cancel;
    alter database open resetlogs;
    我工作中基本遇到的就是上面三种情况了,基本都能把数据打开。然后导出,重建