【备份恢复】 恢复重做日志组成员

 恢复重做日志组成员
1) 查看当前 redo 日志组情况,从结果看是有 3 个日志组,每个日志组有 1 个成员, 1 号日志组为当前正在使用的日志组

SQL> conn / as sysdba

Connected.

SQL>

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

 

    GROUP#    MEMBERS STATUS

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

         1          1 CURRENT

         2          1 UNUSED

         3          1 UNUSED

 

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

 

    GROUP# MEMBER

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

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

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

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

 

前期准备:增加日志组成员

SQL> alter database add logfile member '/u01/app/oracle/oradata/ORA11GR2/redo01_a.log' to group 1;

 

Database altered.

 

SQL> alter database add logfile member '/u01/app/oracle/oradata/ORA11GR2/redo02_a.log' to group 2;

 

Database altered.

 

SQL> alter database add logfile member '/u01/app/oracle/oradata/ORA11GR2/redo03_a.log' to group 3;

 

Database altered.

验证:

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

 

    GROUP#    MEMBERS STATUS

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

         1          2 CURRENT

         2          2 UNUSED

         3          2 UNUSED

 

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

 

    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.log

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

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

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

 

6 rows selected.

2) 删除当前正在使用的第一组 redo 的其中一个成员

[oracle@wang backup]$ cd $ORACLE_BASE

[oracle@wang oracle]$ cd 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 redo01_a.log

[oracle@wang ORA11GR2]$

[oracle@wang ORA11GR2]$ ls redo*

redo01.log  redo02_a.log  redo02.log  redo03_a.log  redo03.log

[oracle@wang ORA11GR2]$

 

1)  此时数据库在使用上是没有问题的,我们一致性关闭数据库,并重启,看看有没有异常

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.

Database opened.

 

2)  数据库重启的步骤没有异常(也就是说,丢失一个 redo 成员并未影响使用),只是在 alert 日志中有如下错误

[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 07:58:23 2016

ARC0 started with pid=20, OS id=7827

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_7736.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_7736.trc:

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

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

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

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

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

Thread 1 opened at log sequence 1

  Current log# 1 seq# 1 mem# 0: /u01/app/oracle/oradata/ORA11GR2/redo01.log

Successful open of redo thread 1

MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set

SMON: enabling cache recovery

Fri Sep 23 07:58:24 2016

ARC1 started with pid=21, OS id=7839

Fri Sep 23 07:58:24 2016

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

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

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/ORA11GR2/redo01_a.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_m000_7843.trc:

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

Fri Sep 23 07:58:24 2016

ARC2 started with pid=23, OS id=7847

Checker run found 1 new persistent data failures

ARC1: Archival started

ARC2: Archival started

ARC1: Becoming the 'no FAL' ARCH

ARC1: Becoming the 'no SRL' ARCH

ARC2: Becoming the heartbeat ARCH

Fri Sep 23 07:58:24 2016

ARC3 started with pid=22, OS id=7855

[7823] Successfully onlined Undo Tablespace 2.

Undo initialization finished serial:0 start:125398924 end:125399034 diff:110 (1 seconds)

Verifying file header compatibility for 11g tablespace encryption..

Verifying 11g file header compatibility for tablespace encryption completed

SMON: enabling tx recovery

Database Characterset is AL32UTF8

No Resource Manager plan active

replication_dependency_tracking turned off (no async multimaster replication found)

Starting background process QMNC

Fri Sep 23 07:58:25 2016

QMNC started with pid=24, OS id=7859

ARC3: Archival started

ARC0: STARTING ARCH PROCESSES COMPLETE

Completed: ALTER DATABASE OPEN

Starting background process CJQ0

Fri Sep 23 07:58:26 2016

CJQ0 started with pid=28, OS id=7887

 

5)修复这个问题也是很简单的,因为 redo 的成员也是互为镜像的,我们首先一致性关闭数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>

3)  复制第一组 redo 成员

[oracle@wang ORA11GR2]$ ls redo*

redo01.log  redo02_a.log  redo02.log  redo03_a.log  redo03.log

[oracle@wang ORA11GR2]$

[oracle@wang ORA11GR2]$ cp redo01.log redo01_a.log

[oracle@wang ORA11GR2]$

[oracle@wang ORA11GR2]$ ls redo*

redo01_a.log  redo02_a.log  redo03_a.log

redo01.log    redo02.log    redo03.log

[oracle@wang ORA11GR2]$

 

4)  启动数据库,恢复完成

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.

Database opened.

查看alert日志也没有报错信息了!!!!!!!!!!

 

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