大家好:
    我之前为数据库做过 alter database clear unarchived logfile group... 的操作。
现在发现当时数据库序列号是34,下一个归档的日志序列号是0,如下:
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /ora01/oracle/oradata/demo/archivelog
Oldest online log sequence     34
Next log sequence to archive   0
Current log sequence           34
SQL> select * from v$log;            GROUP#            THREAD#          SEQUENCE#              BYTES            MEMBERS ARCHIVED  STATUS                                                FIRST_CHANGE# FIRST_TIME
------------------ ------------------ ------------------ ------------------ ------------------ --------- ------------------------------------------------ ------------------ ------------------
                 1                  1                 34           52428800                  2 YES       INACTIVE                                                    1644109 23-JAN-13
                 3                  1                  0           52428800                  2 NO        CLEARING_CURRENT                                            1644161 23-JAN-13
                 2                  1                  0           52428800                  2 YES       UNUSED                                                            0SQL> alter database clear unarchived logfile group 3;
alter database clear unarchived logfile group 3
*
ERROR at line 1:
ORA-00322: log 3 of thread 1 is not current copy
ORA-00312: online log 3 thread 1: '/ora01/oracle/oradata/demo/redo03_2.log'
ORA-00322: log 3 of thread 1 is not current copy
ORA-00312: online log 3 thread 1: '/ora01/oracle/oradata/demo/redo03.log'
SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-00264: no recovery required
SQL> alter database drop logfile group 3;
alter database drop logfile group 3
*
ERROR at line 1:
ORA-01623: log 3 is current log for instance demo (thread 1) - cannot drop
ORA-00312: online log 3 thread 1: '/ora01/oracle/oradata/demo/redo03.log'
ORA-00312: online log 3 thread 1: '/ora01/oracle/oradata/demo/redo03_2.log'
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
--------
请问我要如何操作才能成功恢复打开数据库?
待复,感谢!

解决方案 »

  1.   

    我的日志组group 3的日志文件损坏后,执行了 alter database clear unarchived logfile group 3;
        之后,执行多次alter system archive log current;什么错误?怎么会执行alter system archive log current;这个命令?
    切换日志是用switch logfile啊日志操作命令详细查看文章:http://blog.csdn.net/java3344520/article/details/7196433
      

  2.   

     alter system archive log current这个命令也行 RAC可以用这个归档所有实例  单实例就没差别
      

  3.   

    是的,执行alter system archivelog current;才会显示错误:
    SQL> alter system archive log current;
    alter system archive log current
    *
    ERROR at line 1:
    ORA-16038: log 1 sequence# 9 cannot be archived
    ORA-00312: online log 1 thread 1: '/ora01/oracle/oradata/demo/redo01.log'
    ORA-00312: online log 1 thread 1: '/ora01/oracle/oradata/demo/redo01_2.log'
    ----
    执行alter system switch lofile;就卡住久,没反应?
    ----
    请问我第一楼所反映的问题,应怎么才能解决呢?只能shutdown immdiate后alter database open resetlogs;  解决吗?