ITPub博客

首页 > 数据库 > Oracle > 恢复重做日志组成员

恢复重做日志组成员

原创 Oracle 作者:kiran1990 时间:2016-12-16 15:27:16 0 删除 编辑
1.查看当前日志组及日志组成员
SYS@PROD1>select group#,members,status from v$log;

    GROUP#    MEMBERS STATUS
---------- ---------- ----------------
         1          1 CURRENT
         2          1 UNUSED
         3          1 UNUSED
         
SYS@PROD1>col member for a50;
SYS@PROD1>select group#,member from v$logfile order by 1,2;


    GROUP# MEMBER
---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/PROD1/redo01.log
         2 /u01/app/oracle/oradata/PROD1/redo02.log
         3 /u01/app/oracle/oradata/PROD1/redo03.log
         
增加日志组成员
SYS@PROD1>alter database add logfile member '/u01/app/oracle/oradata/PROD1/redo01_a.log' to group 1;

Database altered.

SYS@PROD1>alter database add logfile member '/u01/app/oracle/oradata/PROD1/redo02_a.log' to group 2;

Database altered.

SYS@PROD1>alter database add logfile member '/u01/app/oracle/oradata/PROD1/redo03_a.log' to group 3;

Database altered.

再次查看
SYS@PROD1>select group#,members,status from v$log;

    GROUP#    MEMBERS STATUS
---------- ---------- ----------------
         1          2 CURRENT
         2          2 UNUSED
         3          2 UNUSED 

SYS@PROD1>select group#,member from v$logfile order by 1,2;

    GROUP# MEMBER
---------- --------------------------------------------------
         1 /u01/app/oracle/oradata/PROD1/redo01.log
         1 /u01/app/oracle/oradata/PROD1/redo01_a.log
         2 /u01/app/oracle/oradata/PROD1/redo02.log
         2 /u01/app/oracle/oradata/PROD1/redo02_a.log
         3 /u01/app/oracle/oradata/PROD1/redo03.log
         3 /u01/app/oracle/oradata/PROD1/redo03_a.log

6 rows selected.

2.删除当前正在使用的第一组redo其中的一个成员
[oracle@host01 ~]$ cd /u01/app/oracle/oradata/PROD1/
[oracle@host01 PROD1]$ ls redo*
redo01_a.log  redo01.log  redo02_a.log  redo02.log  redo03_a.log  redo03.log
[oracle@host01 PROD1]$ rm redo01_a.log

此时数据库在使用上是没有问题的,我们一致性关闭数据库,并重启,看看有没有异常
SYS@PROD1>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SYS@PROD1>startup;
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size                  2257840 bytes
Variable Size             520096848 bytes
Database Buffers          310378496 bytes
Redo Buffers                2371584 bytes
Database mounted.
Database opened.

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

查看日志
Errors in file /u01/app/oracle/diag/rdbms/prod1/PROD1/trace/PROD1_m000_20806.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/PROD1/redo01_a.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

redo日志成员互为镜像,修复较为容易,先一直关闭数据库
SYS@PROD1>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

[oracle@host01 PROD1]$ cp redo01.log redo01_a.log

启动数据库,完成恢复
SYS@PROD1>startup;
ORACLE instance started.

Total System Global Area  835104768 bytes
Fixed Size                  2257840 bytes
Variable Size             520096848 bytes
Database Buffers          310378496 bytes
Redo Buffers                2371584 bytes
Database mounted.
Database opened.

查看告警日志,无报错信息。

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

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

注册时间:2016-10-08

  • 博文量
    61
  • 访问量
    21174