日志文件

============

增加日志成员

============

 

SQL> alter database drop logfile group 1;-----删除之前确保group 1不是当前组,并且处于INACTIVE状态

 

Database altered.

 

SQL> alter database add logfile group 1 ('/u01/app/oracle/oradata/orcl/redo01a.log','/u01/app/oracle/oradata/orcl/redo01b.log') size 10M;

 

Database altered.

 

SQL> alter database drop logfile group 3;

 

Database altered.

 

SQL> alter database add logfile group 3 ('/u01/app/oracle/oradata/orcl/redo03a.log','/u01/app/oracle/oradata/orcl/redo03b.log') size 10M;

 

Database altered.

 

SQL> alter system switch logfile;

 

System altered.

 

SQL> alter database drop logfile group 2;

alter database drop logfile group 2

*

ERROR at line 1:

ORA-01624: log 2 needed for crash recovery of instance orcl (thread 1)

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02.log'

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1         15 CURRENT          NO

         2          1          1         14 ACTIVE           YES

         3          2          1          0 UNUSED           YES

 

SQL> alter system switch logfile;

 

System altered.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1         18 CURRENT          NO

         2          1          1         17 INACTIVE         YES

         3          2          1         16 INACTIVE         YES

 

SQL> alter database drop logfile group 2;

 

Database altered.

 

SQL> alter database add logfile group 2 ('/u01/app/oracle/oradata/orcl/redo02a.log','/u01/app/oracle/oradata/orcl/redo02b.log') size 10M;

 

Database altered.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1         18 CURRENT          NO

         2          2          1          0 UNUSED           YES

         3          2          1         16 INACTIVE         YES

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03a.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01b.log NO

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03b.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02b.log NO

 

6 rows selected.

 

 

================

联机重做日志状态

================

 

日志文件组的状态一般有INACTIVEACTIVECURRENTUNUSEDCLEARINGCLEARING_CURRNT等六种状态:

 

SQL> SELECT STATUS FROM V$LOG;

 

UNUSED 表示该联机重做日志文件组对应的文件还从未被写入过数据,通常刚刚创建的联机重做日志文件组会显示成这一状态。当日志切换到这一组时,就会改变状态。

 

CURRENT 表示当前正在使用的日志文件组。该联机重做日志组是活动的。当前Oracle数据库正在使用的联机重做日志文件组。

 

ACTIVE 表示该组是活动的但不是当前组,实例恢复时需要这组日志。如果处于这一状态,表示虽然当前并未使用,不过该文件中内容尚未归档,或者文件中的数据没有全部写入数据文件,一旦需要


实例恢复,必须借助该文件中保存的内容。

 

INACTIVE 表示实例恢复已不再需要这组联机重做日志组了。表示对应的联机重做日志文件中的内容已被妥善处理,该组联机重做日志当前处于空闲状态。

 

CLEARING表示该组重做日志文件正被重建(重建后该状态会变成UNUSED)。

 

CLEARING_CURRENT表示该组重做日志重建时出现错误。

 

日志文件的状态有STALE,INVALID DELETED、空白 四种状态。可以通过下面语句查看

 

SELECT STATUS FROM V$LOGFILE

 

INVALID : 表示该文件是不可以被访问的。

 

STALE : 表示该文件中的内容是不完全的。

 

空白 表示该文件正在使用。

 

DELETED : 表示该文件已不再有用了。

 

ARCHIVED列值为YES表示已经归档,NO表示未归档。 SEQUENCE列值表示日志序列号,每进行一次日志切换就+1

 

 

oracle 检查点(Checkpoint

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1       7 ACTIVE              YES

         2          2          1       8 ACTIVE              YES

         3          2          1       9 CURRENT             NO

 

SQL> alter system checkpoint local; --------手动产生检查点,使ACTIVE状态变为INACTIVE;

 

System altered.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1       7 INACTIVE            YES

         2          2          1       8 INACTIVE            YES

         3          2          1       9 CURRENT             NO

 

 

 

==================

日志文件丢失恢复

==================

 

 

================

数据库打开状态下

================

 

:丢失某个日志组中的某个member

 

     这种情况在日志多路复用的情况下是不影响数据库使用的,所以建议日志组的成员数至少2个。

 

:丢失的是非当前活动(INACTIVE)日志

    

     1 如果日志已经归档(YES),可以直接使用alter database clear logfile group x;来重建日志文件;

     2 如果日志文件没有归档(NO,可以使用alter database clear unarchived logfile group x;强行clear,来重建日志文件即可;

       有归档的日志组建议在操作后立即对数据库执行新的完全备份,因为日志已丢失,所有日志丢失之前的恢复将失效。

 

:丢失当前活动(ACTIVE)日志

    

     恢复方法同方法“二”;

 

:如果丢失的是当前日志,当数据库是开启,恢复方法同方法“二”;

 

 

 

一:

 

[oracle@chen ~]$ cd /u01/app/oracle/oradata/orcl/

 

[oracle@chen orcl]$ rm -rf redo02a.log

 

SQL> shutdown immediate;

 

SQL> startup

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1         18 INACTIVE         YES

         2          2          1         19 INACTIVE         YES

         3          2          1         20 CURRENT          NO

 

SQL> select * from v$logfile;

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03a.log NO

         2 INVALID ONLINE  /u01/app/oracle/oradata/orcl/redo02a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01b.log NO

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03b.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02b.log NO

 

6 rows selected.

 

 

[oracle@chen orcl]$ cp redo02b.log redo02a.log

 

SQL> alter system switch logfile;

 

System altered.

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03a.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01b.log NO

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03b.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02b.log NO

 

6 rows selected.

 

二:

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1         36 ACTIVE           YES

         2          2          1         37 CURRENT          NO

         3          2          1         35 INACTIVE         YES

 

 

[oracle@chen orcl]$ rm -rf redo01a.log redo01b.log

 

SQL> alter system switch logfile;

 

System altered.

 

SQL> alter system switch logfile;

 

。。。。。。。。。

在归档模式下,丢失了非CURRENT日志组,这会在日志切换时因无法归档导致数据库hang

 

SQL> ctrl+c

 

SQL> alter system switch logfile;

alter system switch logfile

*

ERROR at line 1:

ORA-01013: user requested cancel of current operation

 

[oracle@chen trace]$ cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace/

 

[oracle@chen trace]$ vim alert_orcl.log

 

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01a.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

 

SQL> alter database clear logfile group 1;

alter database clear logfile group 1

*

ERROR at line 1:

ORA-00350: log 1 of instance orcl (thread 1) needs to be archived

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01a.log'

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01b.log'

 

SQL> alter database clear unarchived logfile group 1;

 

Database altered.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1          0 UNUSED           YES

         2          2          1         40 INACTIVE         NO

         3          2          1         41 CURRENT          NO

 

 

SQL> alter system switch logfile;

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1         42 CURRENT          NO

         2          2          1         40 INACTIVE         YES

         3          2          1         41 ACTIVE           YES

 

System altered.

 

SQL> ho ls /u01/app/oracle/oradata/orcl

control01.ctl  redo01b.log  redo02.log   redo03.log    temp01.dbf

example01.dbf  redo02a.log  redo03a.log  sysaux01.dbf  undotbs01.dbf

redo01a.log    redo02b.log  redo03b.log  system01.dbf  users01.dbf

 

 

:同方法“二”

 

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03a.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01b.log NO

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03b.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02b.log NO

 

6 rows selected.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1      63 INACTIVE            YES

         2          2          1      64 CURRENT             NO

         3          2          1      62 INACTIVE            YES

 

[oracle@chen orcl]$ rm -rf redo02a.log redo02b.log

 

SQL> alter system switch logfile;

alter system switch logfile

*

ERROR at line 1:

ORA-01013: user requested cancel of current operation

 

SQL> alter database drop logfile group 2;  ---------没有归档时直接删除

alter database drop logfile group 2

*

ERROR at line 1:

ORA-00350: log 2 of instance orcl (thread 1) needs to be archived

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02a.log'

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log'

 

SQL> alter database clear logfile group 2;

alter database clear logfile group 2

*

ERROR at line 1:

ORA-00350: log 2 of instance orcl (thread 1) needs to be archived

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02a.log'

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log'

 

SQL> alter database clear unarchived logfile group 2;

 

Database altered.

 

SQL> ho ls

control01.ctl  redo01b.log  redo03a.log  sysaux01.dbf  undotbs01.dbf

example01.dbf  redo02a.log  redo03b.log  system01.dbf  users01.dbf

redo01a.log    redo02b.log  redo03.log   temp01.dbf

 

SQL> alter system switch logfile;

 

System altered.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1      69 ACTIVE      YES

         2          2          1      70 CURRENT             NO

         3          2          1      68 ACTIVE      YES

 

 

 

================

数据库关闭状态下

================

 

:丢失某个日志组中的某个member

 

     这种情况在日志多路复用的情况下是不影响数据库使用的,所以建议日志组的成员数至少2个。

 

:丢失的是非当前活动(INACTIVE)日志

     

     1 如果日志已经归档(YES),可以直接使用alter database clear logfile group x;来重建日志文件;

     2 如果日志文件没有归档(NO,可以使用alter database clear unarchived logfile group x;强行clear,来重建日志文件即可;

       有归档的日志组建议在操作后立即对数据库执行新的完全备份,因为日志已丢失,所有日志丢失之前的恢复将失效。

 

:丢失当前活动(ACTIVE)日志

    

:丢失当前日志组 1 数据库正常关闭(9i后面的版本)

                    2 9i版本

                    3 数据库意外关闭

     数据库意外关闭,并且丢失的是当前日志,可以通过设置隐含参数的方法强制打开数据库

 

二: 1

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03a.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01b.log NO

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03b.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02b.log NO

 

6 rows selected.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1      69 INACTIVE            YES

         2          2          1      70 CURRENT             NO

         3          2          1      68 INACTIVE            YES

 

 

SQL> shutdown immediate

 

[oracle@chen orcl]$ rm -rf redo03a.log redo03b.log ---删除INACTIVE,YES

 

SQL> startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             838863760 bytes

Database Buffers          419430400 bytes

Redo Buffers                8859648 bytes

Database mounted.

ORA-03113: end-of-file on communication channel

Process ID: 10390

Session ID: 1 Serial number: 5

 

[oracle@chen orcl]$ vim /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

.........

ORA-00313: open failed for members of log group 3 of thread 1

ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orcl/redo03b.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

 

恢复

 

SQL> startup mount;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             838863760 bytes

Database Buffers          419430400 bytes

Redo Buffers                8859648 bytes

Database mounted.

 

SQL> alter database clear logfile group 3;

 

Database altered.

 

SQL> alter database open;

 

Database altered.

 

SQL> ho ls

control01.ctl  redo01b.log  redo03a.log  sysaux01.dbf  undotbs01.dbf

example01.dbf  redo02a.log  redo03b.log  system01.dbf  users01.dbf

redo01a.log    redo02b.log  redo03.log   temp01.dbf

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1      69 INACTIVE            YES

         2          2          1      70 CURRENT             NO

         3          2          1       0 UNUSED      YES

 

 

三:1 数据库正常关闭

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03a.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01b.log NO

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03b.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02b.log NO

 

6 rows selected.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1      69 INACTIVE            YES

         2          2          1      70 ACTIVE      YES

         3          2          1      71 CURRENT             NO

 

[oracle@chen orcl]$ rm -rf redo02a.log redo02b.log

 

SQL> startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             838863760 bytes

Database Buffers          419430400 bytes

Redo Buffers                8859648 bytes

Database mounted.

ORA-03113: end-of-file on communication channel

Process ID: 11405

Session ID: 1 Serial number: 5

 

[oracle@chen orcl]$ vim /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

..............

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_11405.trc:

ORA-00313: open failed for members of log group 1 of thread

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02a.log'

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log'

USER (ospid: 11405): terminating the instance due to error 313

 

SQL> startup mount;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             838863760 bytes

Database Buffers          419430400 bytes

Redo Buffers                8859648 bytes

Database mounted.

 

SQL> alter database clear logfile group 2;

 

Database altered.

 

SQL> alter database open;

 

Database altered.

2 数据库意外关闭

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03a.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01a.log NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01b.log NO

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03b.log NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02b.log NO

 

6 rows selected.

 

SQL> select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          2          1      69 INACTIVE            YES

         2          2          1      72 CURRENT             NO

         3          2          1      71 ACTIVE      YES

 

SQL> shutdown abort

ORACLE instance shut down.

 

[oracle@chen orcl]$ rm -rf redo03a.log redo03b.log

 

SQL> startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             838863760 bytes

Database Buffers          419430400 bytes

Redo Buffers                8859648 bytes

Database mounted.

ORA-00313: open failed for members of log group 3 of thread 1

ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orcl/redo03b.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orcl/redo03a.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

 

SQL> select status from v$instance;

 

STATUS

------------

MOUNTED

 

SQL> alter database clear logfile group 2;

alter database clear logfile group 2

*

ERROR at line 1:

ORA-01624: log 2 needed for crash recovery of instance orcl (thread 1)

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02a.log'

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log'

 

SQL> alter database clear unarchived logfile group 2;

alter database clear unarchived logfile group 2

*

ERROR at line 1:

ORA-01624: log 2 needed for crash recovery of instance orcl (thread 1)

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02a.log'

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/orcl/redo02b.log'

 

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

 

............

 

1 9i之后版本,删除当前日志组

 

SQL>  select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          1          1      13 CURRENT             NO

         2          1          1      11 INACTIVE            YES

         3          1          1      12 INACTIVE            YES

 

SQL> col member for a40

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log  NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log  NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log  NO

 

SQL> shutdown immediate

 

[oracle@chen orcl]$ rm -rf redo01.log

 

SQL> startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             788532112 bytes

Database Buffers          469762048 bytes

Redo Buffers                8859648 bytes

Database mounted.

ORA-03113: end-of-file on communication channel

Process ID: 10804

Session ID: 1 Serial number: 5

 

[oracle@chen orcl]$ vim /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_10804.trc:

ORA-00313: open failed for members of log group 1 of thread

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01.log'

USER (ospid: 10804): terminating the instance due to error 313

 

SQL> startup mount

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             788532112 bytes

Database Buffers          469762048 bytes

Redo Buffers                8859648 bytes

Database mounted.

 

SQL> alter database clear logfile group 1;

alter database clear logfile group 1

*

ERROR at line 1:

ORA-00350: log 1 of instance orcl (thread 1) needs to be archived

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01.log'

 

 

SQL> alter database clear unarchived logfile group 1;

 

Database altered.

 

SQL> alter database open;

 

Database altered.

 

SQL> ho ls

control01.ctl  redo01.log  redo03.log    system01.dbf  undotbs01.dbf

example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf    users01.dbf

 

SQL>  select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          1          1       0 UNUSED              YES

         2          1          1      14 CURRENT             NO

         3          1          1      12 INACTIVE            YES

 

SQL> alter system switch logfile;

 

System altered.

 

SQL>  select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          1          1      15 CURRENT             NO

         2          1          1      14 ACTIVE              YES

         3          1          1      12 INACTIVE            YES

 

 

2 9i

 

oracle 9i,可能无法对当前日志进行clear,需要通过until

 

SQL>  select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          1          1      15 CURRENT             NO

         2          1          1      14 INACTIVE            YES

         3          1          1      12 INACTIVE            YES

 

[oracle@chen orcl]$ rm -rf redo01.log

 

SQL> startup ;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             788532112 bytes

Database Buffers          469762048 bytes

Redo Buffers                8859648 bytes

Database mounted.

ORA-03113: end-of-file on communication channel

Process ID: 12583

Session ID: 1 Serial number: 5

 

[oracle@chen orcl]$ vim /u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_12583.trc:

ORA-00313: open failed for members of log group 1 of thread

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/orcl/redo01.log'

USER (ospid: 12583): terminating the instance due to error 313

 

SQL> startup mount;

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             788532112 bytes

Database Buffers          469762048 bytes

Redo Buffers                8859648 bytes

Database mounted.

 

SQL> recover database until cancel;

Media recovery complete.

 

SQL> alter database open resetlogs;

 

Database altered.

 

SQL> ho ls

control01.ctl  redo01.log  redo03.log    system01.dbf  undotbs01.dbf

example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf    users01.dbf

 

3

 

SQL>  select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          1          1       1 INACTIVE            YES

         2          1          1       2 INACTIVE            YES

         3          1          1       3 CURRENT             NO

 

[oracle@chen orcl]$  rm -rf redo03.log

 

SQL> shutdown abort

ORACLE instance shut down.

 

SQL> startup

ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance

ORACLE instance started.

 

Total System Global Area 1269366784 bytes

Fixed Size                  2212976 bytes

Variable Size             788532112 bytes

Database Buffers          469762048 bytes

Redo Buffers                8859648 bytes

Database mounted.

ORA-00313: open failed for members of log group 3 of thread 1

ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orcl/redo03.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

 

SQL> select status from v$instance;

 

STATUS

------------

MOUNTED

 

SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;

 

System altered.

 

SQL> shutdown immediate;

 

SQL> startup mount;

 

SQL> recover database until cancel;

ORA-00279: change 1059851 generated at 08/23/2014 23:21:00 needed for thread 1

ORA-00289: suggestion : /home/oracle/archive_1/orcl_1856393447_3.arc

ORA-00280: change 1059851 for thread 1 is in sequence #3

 

 

Specify log: {=suggested | filename | AUTO | CANCEL}

cancel

ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below

ORA-01194: file 1 needs more recovery to be consistent

ORA-01110: data file 1: '/u01/app/oracle/oradata/orcl/system01.dbf'

 

ORA-01112: media recovery not started

 

SQL> alter database open resetlogs;

 

Database altered.

 

SQL>  select group#,members,thread#,sequence#,status,archived from v$log;

 

    GROUP#    MEMBERS    THREAD#  SEQUENCE# STATUS           ARC

---------- ---------- ---------- ---------- ---------------- ---

         1          1          1       1 CURRENT             NO

         2          1          1       0 UNUSED      YES

         3          1          1       0 UNUSED      YES

 

SQL> col member for a40

 

SQL> select * from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER                   IS_

---------- ------- ------- ---------------------------------------- ---

         3         ONLINE  /u01/app/oracle/oradata/orcl/redo03.log  NO

         2         ONLINE  /u01/app/oracle/oradata/orcl/redo02.log  NO

         1         ONLINE  /u01/app/oracle/oradata/orcl/redo01.log  NO

 

 

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29785807/viewspace-1314339/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29785807/viewspace-1314339/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值