【备份恢复】恢复 丢失已归档重做日志文件

丢失已归档重做日志文件

1) 查看当前日志组状态,第2组日志为当前日志组,另外两组为非活动状态且已归档,还有,每组日志均为 2个成员

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

 

    GROUP#    MEMBERS ARC STATUS

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

         1          2 YES INACTIVE

         2          2 NO  CURRENT

         3          2 YES UNUSED

 

SQL>  select group#,member from v$logfile order by 1;

 

    GROUP# MEMBER

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

         1 /u01/app/oracle/oradata/ORA11GR2/redo01.log

         1 /u01/app/oracle/oradata/ORA11GR2/redo01_a.log

         2 /u01/app/oracle/oradata/ORA11GR2/redo02_a.log

         2 /u01/app/oracle/oradata/ORA11GR2/redo02.log

         3 /u01/app/oracle/oradata/ORA11GR2/redo03_a.log

         3 /u01/app/oracle/oradata/ORA11GR2/redo03.log

 

6 rows selected.

 

2) 删除3组日志文件

[oracle@wang ~]$ cd /u01/app/oracle/oradata/ORA11GR2/

[oracle@wang ORA11GR2]$ ls redo*

redo01_a.log  redo02_a.log  redo03_a.log

redo01.log    redo02.log    redo03.log

[oracle@wang ORA11GR2]$

[oracle@wang ORA11GR2]$ rm redo03_a.log

[oracle@wang ORA11GR2]$ rm redo03.log

[oracle@wang ORA11GR2]$

[oracle@wang ORA11GR2]$ ls redo*

redo01_a.log  redo01.log  redo02_a.log  redo02.log

[oracle@wang ORA11GR2]$

 

3) 重启数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>

SQL> startup

ORACLE instance started.

 

Total System Global Area  830930944 bytes

Fixed Size                  2257800 bytes

Variable Size             503319672 bytes

Database Buffers          322961408 bytes

Redo Buffers                2392064 bytes

Database mounted.

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

Process ID: 29933

Session ID: 1 Serial number: 9

 

4) 此时我们发现 alert 日志有如下错误:

[oracle@wang ORA11GR2]$ cd trace/

[oracle@wang trace]$ pwd

/u01/app/oracle/diag/rdbms/ora11gr2/ORA11GR2/trace

[oracle@wang trace]$ tail -100f alert_ORA11GR2.log
============================================================================

ALTER DATABASE OPEN

LGWR: STARTING ARCH PROCESSES

Fri Sep 23 13:29:02 2016

ARC0 started with pid=20, OS id=29945

ARC0: Archival started

LGWR: STARTING ARCH PROCESSES COMPLETE

ARC0: STARTING ARCH PROCESSES

Errors in file /u01/app/oracle/diag/rdbms/ora11gr2/ORA11GR2/trace/ORA11GR2_lgwr_29821.trc:

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

Errors in file /u01/app/oracle/diag/rdbms/ora11gr2/ORA11GR2/trace/ORA11GR2_lgwr_29821.trc:

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

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

ORA-27037: unable to obtain file status

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

Additional information: 3

Errors in file /u01/app/oracle/diag/rdbms/ora11gr2/ORA11GR2/trace/ORA11GR2_lgwr_29821.trc:

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

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

ORA-27037: unable to obtain file status

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

Additional information: 3

Errors in file /u01/app/oracle/diag/rdbms/ora11gr2/ORA11GR2/trace/ORA11GR2_ora_29933.trc:

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

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

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

Fri Sep 23 13:29:03 2016

ARC1 started with pid=21, OS id=29975

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

System state dump requested by (instance=1, osid=29933), summary=[abnormal instance termination].

System State dumped to trace file /u01/app/oracle/diag/rdbms/ora11gr2/ORA11GR2/trace/ORA11GR2_diag_29801_20160923132903.trc

Dumping diagnostic data in directory=[cdmp_20160923132903], requested by (instance=1, osid=29933), summary=[abnormal instance termination].
Instance terminated by USER, pid = 29933
============================================================================================

 

5) 启动数据库到 mount 状态

SQL> conn / as sysdba

Connected to an idle instance.

SQL>

SQL> startup mount; 

 (此步骤不需要数据文件,只需要控制文件就可以)



ORACLE instance started.

 

Total System Global Area  830930944 bytes

Fixed Size                  2257800 bytes

Variable Size             503319672 bytes

Database Buffers          322961408 bytes

Redo Buffers                2392064 bytes

Database mounted.

 

6) clear 修复日志文件

clear的动作就是在操作系统redo日志对应路径下创建日志文件,只是创建的文件是新的,且是未使用过的)

SQL> alter database clear logfile group 3;

Database altered.

 

——验证:

[oracle@wang ORA11GR2]$ ls redo*

redo01_a.log  redo02_a.log  redo03_a.log

redo01.log    redo02.log    redo03.log

[oracle@wang ORA11GR2]$

 

7) 打开数据库

SQL> alter database open;

 

Database altered.

 

SQL> select status from v$instance;

 

STATUS

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

OPEN

 

——再次验证:

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

 

    GROUP#    MEMBERS ARC STATUS

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

         1          2 YES INACTIVE

         2          2 NO  CURRENT

         3          2 YES UNUSED

 

SQL> select group#,member from v$logfile;

 

    GROUP# MEMBER

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

         3 /u01/app/oracle/oradata/ORA11GR2/redo03.log

         2 /u01/app/oracle/oradata/ORA11GR2/redo02.log

         1 /u01/app/oracle/oradata/ORA11GR2/redo01.log

         1 /u01/app/oracle/oradata/ORA11GR2/redo01_a.log

         2 /u01/app/oracle/oradata/ORA11GR2/redo02_a.log

         3 /u01/app/oracle/oradata/ORA11GR2/redo03_a.log

 

6 rows selected.

完成!!!!!!!!!!!!!!!!!!!

请使用浏览器的分享功能分享到微信等