ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于一个当前联机日志文件恢复的问题

关于一个当前联机日志文件恢复的问题

原创 Linux操作系统 作者:crpp0902 时间:2019-07-05 22:57:05 0 删除 编辑
今天根据piner以前发的一个关于备份恢复文档做测试,其中看到关于当前联机日志文件被删除后怎么打开数据库的方式,原文如下:
5.1.2 损坏当前联机日志
归档模式下当前日志的损坏有两种情况,
一、是数据库是正常关闭,日志文件中没有未决的事务需要实例恢复,当前日志组的损坏就可以直接用alter database clear unarchived logfile group n来重建。

我做的测试如下:
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1          2  104857600          1 YES INACTIVE                 63118 18-DEC-08
         2          1          3  104857600          1 NO  CURRENT                  63123 18-DEC-08
         3          1          1  104857600          1 YES INACTIVE                 59231 18-DEC-08

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> host
oracle@localhost /opt/oracle/oradata/XXXX$mv redo02.log ../
SQL*Plus: Release 9.2.0.4.0 - Production on Thu Dec 18 21:48:10 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1696144180 bytes
Fixed Size                   453428 bytes
Variable Size             469762048 bytes
Database Buffers         1224736768 bytes
Redo Buffers                1191936 bytes
Database mounted.
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/opt/oracle/oradata/XXXX/redo02.log'
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1          2  104857600          1 YES INACTIVE                 63118 18-DEC-08
         2          1          3  104857600          1 NO  CURRENT                  63123 18-DEC-08
         3          1          1  104857600          1 YES INACTIVE                 59231 18-DEC-08
SQL> alter database clear logfile group 2;
alter database clear logfile group 2
*
ERROR at line 1:
ORA-00350: log 2 of thread 1 needs to be archived
ORA-00312: online log 2 thread 1: '/opt/oracle/oradata/XXXX/redo02.log'


SQL> alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 2
*
ERROR at line 1:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/opt/oracle/oradata/XXXX/redo02.log'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIM
------------- ---------
         1          1          2  104857600          1 YES INACTIVE
        63118 18-DEC-08

         2          1          0  104857600          1 NO  CLEARING_CURRENT
        63123 18-DEC-08

         3          1          0  104857600          1 YES UNUSED
            0 18-DEC-08


我按照文档所说的测试,执行alter database clear unarchived logfile group N后,该组日志的状态变为了CLEARING_CURRENT.
而且报找不到文件的linux error.
数据库恢复进行不下去.
请问是我这样存在那些问题??
还是测试的过程中忘记了那些步骤??

[ 本帖最后由 crpp0902 于 2008-12-18 23:28 编辑 ]

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

请登录后发表评论 登录
全部评论

注册时间:2002-11-14

  • 博文量
    59
  • 访问量
    54497