丢失重做日志文件
        丢失了重做日志文件组中的某个成员,并且组中至少还有一个成员:
            -不会影响实例的正常操作。
            -预警日志中会收到一条信息,通知您无法找到某个成员
            -可以通过删除丢失的重做日志成员并添加新成员来恢复丢失的日志文件
            -如果包含丢失日志文件的组已归档,您可以清除日志组来重新创建丢失的文件
 
恢复步骤:
       1.确定是否有缺失的日志文件
        2.恢复丢失的文件时,先删除丢失的重做日志成员
            ALTER DATABASE DROP LOGFILE MEMBER '+DATA/orcl/onlinelog/group_1.261.691672257';
        3.然后添加新成员来替代丢失的日志成员
            ALTER DATABASE ADD LOGFILE MEMBER '+DATA' TO GROUP 2;
        4.如果介质故障是由于磁盘或控制器缺失而造成的,需重命名丢失文件。
        5.如果重做日志组已归档,或者处于NOARCHIVELOG模式下,则可选择在清除日志组后重新创建缺失来解决问题,
            ALTER DATABASE CLEAR LOGFILE GROUP n;
        注意:清除未归档的日志组,应立即对整个数据库执行完全备份,否则,在发生其它故障的情况下,会导致数据丢失。
            ALTER DATABASE CLEAR UNARCHIVED  LOGFILE GROUP #;
 
 
 
测试环境中先新增3组,每组2个成员

alter database  add logfile group 4  ('/u01/app/oracle/oradata/xiocpt0/p_redo04_01.log','/u01/app/oracle/oradata/xiocpt0/p_redo04_02.log') size 128M;
alter database add logfile group 5 ('/u01/app/oracle/oradata/xiocpt0/p_redo05_01.log','/u01/app/oracle/oradata/xiocpt0/p_redo05_02.log') size 128M;
alter database add logfile group 6 ('/u01/app/oracle/oradata/xiocpt0/p_redo06_01.log','/u01/app/oracle/oradata/xiocpt0/p_redo06_02.log') size 128M;
 
 
 
set pagesize 600
 
select group#,sequence#,bytes/(1024*1024),members,archived,status from v$log;
 
col member format a50
 
select group#,status,member from v$logfile;
 

SQL> set pagesize 600

select group#,sequence#,bytes/(1024*1024),members,archived,status from v$log;--查看重做日志成员状态信息

col member format a50

SQL> SQL>
GROUP# SEQUENCE# BYTES/(1024*1024) MEMBERS ARC STATUS
---------- ---------- ----------------- ---------- --- ----------------
1 4 50 1 YES INACTIVE
2 5 50 1 NO CURRENT
3 3 50 1 YES INACTIVE
4 0 128 2 YES UNUSED
5 0 128 2 YES UNUSED
6 0 128 2 YES UNUSED 6 rows selected. SQL> select group#,status,member from v$logfile;--查看重做日志成员,物理路径,这里存储方式为文件系统 GROUP# STATUS MEMBER
---------- ------- --------------------------------------------------
1 STALE /u01/app/oracle/oradata/xiocpt0/redo01.log
3 STALE /u01/app/oracle/oradata/xiocpt0/redo03.log
2 /u01/app/oracle/oradata/xiocpt0/redo02.log
4 /u01/app/oracle/oradata/xiocpt0/p_redo04_01.log
4 /u01/app/oracle/oradata/xiocpt0/p_redo04_02.log
5 /u01/app/oracle/oradata/xiocpt0/p_redo05_01.log
5 /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log
6 /u01/app/oracle/oradata/xiocpt0/p_redo06_01.log
6 /u01/app/oracle/oradata/xiocpt0/p_redo06_02.log 9 rows selected. 手动删除group 1的物理文件 SQL> !rm /u01/app/oracle/oradata/xiocpt0/redo01.log group 1的状态以归档,INACTIVE SQL> select group#,sequence#,bytes/(1024*1024),members,archived,status from v$log; GROUP# SEQUENCE# BYTES/(1024*1024) MEMBERS ARC STATUS
---------- ---------- ----------------- ---------- --- ----------------
1 4 50 1 YES INACTIVE
2 5 50 1 NO CURRENT
3 3 50 1 YES INACTIVE
4 0 128 2 YES UNUSED
5 0 128 2 YES UNUSED
6 0 128 2 YES UNUSED 6 rows selected. 验证物理文件已被删除 SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/redo01.log
ls: cannot access /u01/app/oracle/oradata/xiocpt0/redo01.log: No such file or directory 针对已归档的重做日志文件组,可以使用clear命令进行恢复 alter database clear logfile group 1; SQL> alter database clear logfile group 1; Database altered. 验证物理文件已恢复完成 SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/redo01.log
-rw-r----- 1 oracle dba 52429312 May 22 13:42 /u01/app/oracle/oradata/xiocpt0/redo01.log
 
 
 
 
切换重做日志文件
 
alter system switch logfile;
alter system checkpoint;
 
 
测试删除重做日志文件组中单个成员
 
SQL>  select group#,sequence#,bytes/(1024*1024),members,archived,status from v$log;

    GROUP#  SEQUENCE# BYTES/(1024*1024)    MEMBERS ARC STATUS
---------- ---------- ----------------- ---------- --- ----------------
1 6 50 1 YES INACTIVE
2 5 50 1 YES INACTIVE
3 3 50 1 YES INACTIVE
4 7 128 2 YES INACTIVE
5 8 128 2 YES INACTIVE
6 9 128 2 NO CURRENT 删除group 5中的 02成员 SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log
-rw-r----- 1 oracle dba 134218240 May 22 13:42 /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log SQL> !rm /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log
ls: cannot access /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log: No such file or directory SQL> alter system switch logfile; System altered.
SQL> /
SQL> /
SQL> /
SQL> / SQL> alter system checkpoint; System altered. oracle预警日志文件中提示/u01/app/oracle/oradata/xiocpt0/p_redo05_02.log以不存在,因为重做日志group 5有2个成员,数据依旧正常。 Errors in file /u01/app/oracle/diag/rdbms/xiocpt0/xiocpt0/trace/xiocpt0_arc0_1460.trc:
ORA-00313: open failed for members of log group 5 of thread 1
ORA-00312: online log 5 thread 1: '/u01/app/oracle/oradata/xiocpt0/p_redo05_02.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/xiocpt0/xiocpt0/trace/xiocpt0_arc0_1460.trc:
ORA-00313: open failed for members of log group 5 of thread 1
ORA-00312: online log 5 thread 1: '/u01/app/oracle/oradata/xiocpt0/p_redo05_02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory 对group有多个成员的,单成员进行修复 alter database drop logfile member '/u01/app/oracle/oradata/xiocpt0/p_redo05_02.log'; alter database add logfile member '/u01/app/oracle/oradata/xiocpt0/p_redo05_02.log' to group 5; 先将丢失的成员从group中进行删除
SQL> alter database drop logfile member '/u01/app/oracle/oradata/xiocpt0/p_redo05_02.log'; Database altered. SQL> select group#,sequence#,bytes/(1024*1024),members,archived,status from v$log; GROUP# SEQUENCE# BYTES/(1024*1024) MEMBERS ARC STATUS
---------- ---------- ----------------- ---------- --- ----------------
1 12 50 1 YES INACTIVE
2 11 50 1 YES INACTIVE
3 16 50 1 NO CURRENT
4 13 128 2 YES INACTIVE
5 14 128 1 YES INACTIVE
6 15 128 2 YES INACTIVE 6 rows selected. 再新增成员
SQL> alter database add logfile member '/u01/app/oracle/oradata/xiocpt0/p_redo05_02.log' to group 5; Database altered. SQL> select group#,sequence#,bytes/(1024*1024),members,archived,status from v$log; GROUP# SEQUENCE# BYTES/(1024*1024) MEMBERS ARC STATUS
---------- ---------- ----------------- ---------- --- ----------------
1 12 50 1 YES INACTIVE
2 11 50 1 YES INACTIVE
3 16 50 1 NO CURRENT
4 13 128 2 YES INACTIVE
5 14 128 2 YES INACTIVE
6 15 128 2 YES INACTIVE 6 rows selected. 也可以对整个group 进行clear,但需注意此group 必须已归档 SQL> !rm /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log
ls: cannot access /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log: No such file or directory SQL> alter database clear logfile group 5; Database altered. SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log
-rw-r----- 1 oracle dba 134218240 May 22 13:51 /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log
 
 
丢失当前重做日志文件
        alter database clear unarchived logfile group  #;
 
SQL>  select group#,sequence#,bytes/(1024*1024),members,archived,status from v$log;

    GROUP#  SEQUENCE# BYTES/(1024*1024)    MEMBERS ARC STATUS
---------- ---------- ----------------- ---------- --- ----------------
1 12 50 1 YES INACTIVE
2 11 50 1 YES INACTIVE
3 16 50 1 NO CURRENT
4 13 128 2 YES INACTIVE
5 0 128 2 YES UNUSED
6 15 128 2 YES INACTIVE 6 rows selected. SQL>
SQL> select group#,status,member from v$logfile; GROUP# STATUS MEMBER
---------- ------- --------------------------------------------------
1 /u01/app/oracle/oradata/xiocpt0/redo01.log
3 /u01/app/oracle/oradata/xiocpt0/redo03.log
2 /u01/app/oracle/oradata/xiocpt0/redo02.log
4 /u01/app/oracle/oradata/xiocpt0/p_redo04_01.log
4 /u01/app/oracle/oradata/xiocpt0/p_redo04_02.log
5 /u01/app/oracle/oradata/xiocpt0/p_redo05_01.log
5 /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log
6 /u01/app/oracle/oradata/xiocpt0/p_redo06_01.log
6 /u01/app/oracle/oradata/xiocpt0/p_redo06_02.log 9 rows selected. SQL> !rm -rf /u01/app/oracle/oradata/xiocpt0/redo03.log SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/redo03.log
ls: cannot access /u01/app/oracle/oradata/xiocpt0/redo03.log: No such file or directory SQL> alter system switch logfile; System altered. SQL> alter system checkpoint; System altered. SQL> alter database clear unarchived logfile group 3; Database altered. SQL> select group#,status,member from v$logfile; GROUP# STATUS MEMBER
---------- ------- --------------------------------------------------
1 /u01/app/oracle/oradata/xiocpt0/redo01.log
3 /u01/app/oracle/oradata/xiocpt0/redo03.log
2 /u01/app/oracle/oradata/xiocpt0/redo02.log
4 /u01/app/oracle/oradata/xiocpt0/p_redo04_01.log
4 /u01/app/oracle/oradata/xiocpt0/p_redo04_02.log
5 /u01/app/oracle/oradata/xiocpt0/p_redo05_01.log
5 /u01/app/oracle/oradata/xiocpt0/p_redo05_02.log
6 /u01/app/oracle/oradata/xiocpt0/p_redo06_01.log
6 /u01/app/oracle/oradata/xiocpt0/p_redo06_02.log 9 rows selected. SQL> !ls -l /u01/app/oracle/oradata/xiocpt0/redo03.log
-rw-r----- 1 oracle dba 52429312 May 22 13:52 /u01/app/oracle/oradata/xiocpt0/redo03.log
 

(Les16 执行数据库恢复)-重做日志文件恢复的更多相关文章

  1. oracle重做日志文件硬盘坏掉解决方法

    rman target/ list backup; list backup summary; 删除数据库数据文件夹下的log日志,例如/u01/app/oracle/oradata/ORCL下的所有后 ...

  2. 初识oracle重做日志文件

    转自 http://blog.csdn.net/indexman/article/details/7746948 以下易容翻译自oracle dba官方文档,不足之处还望指出. 管理重做日志文件 学习 ...

  3. 利用日志文件恢复MYSQL数据库

    利用日志文件恢复MYSQL数据库 650) this.width=650;" onclick='window.open("http://blog.51cto.com/viewpic ...

  4. RMAN数据库恢复之恢复归档日志文件

    恢复归档日志文件如果只是为了在恢复数据文件之后应用归档文件,那并不需要手动对归档文件进行恢复,RMAN会在RECOVER时自动对适当的归档进行恢复.单独恢复归档文件一般是有特别的需求,如创建了Data ...

  5. Oracle重做日志文件

    一.联机重做日志的规划管理 1.联机重做日志 记录了数据的所有变化(DML,DDL或管理员对数据所作的结构性更改等) 提供恢复机制(对于意外删除或宕机利用日志文件实现数据恢复) 可以被分组管理  11 ...

  6. Oracle 联机重做日志文件(ONLINE LOG FILE)

    --========================================= -- Oracle 联机重做日志文件(ONLINE LOG FILE) --================== ...

  7. Oracle数据库体系结构(6)数据库归档重做日志文件管理

    归档重做日志文件的概念和选择 Oracle数据库能够把已经写满了的重做日志文件保存到一个或多个指定的离线位置,这种保存的文件为归档重做日志文件.通常情况下一个归档重做日志时一个被LGWR写满的重做日志 ...

  8. ORACLE 移动数据文件 控制文件 重做日志文件

    ORACLE数据库有时候需要对存储进行调整,增加分区.IO调优等等,此时需要移动数据文件.重做日志文件.控制文件等等,下文结合例子总结一下这方面的知识点. 进行数据文件.重做日志文件.控制文件的迁移前 ...

  9. ORACLE - 管理重做日志文件

    ORACLE重做日志文件用于在数据库崩溃等情况下用于恢复数据,默认情况下为三个文件redo01.log/redo02.log/redo03.log,文件组循环使用,在录入与更新操作比较多的应用中,日志 ...

随机推荐

  1. BootstrapValidator超详细教程

    一.引入必要文件 下载地址:(https://github.com/nghuuphuoc/bootstrapvalidator/archive/v0.4.5.zip) <link rel=&qu ...

  2. RocketMQ读书笔记6——可靠性优先的使用场景

    [顺序消息] 顺序消费是指消息的产生顺序和消费顺序相同. 比如订单的生成.付款.发货,这三个消息必须按顺序处理才可以. [顺序消息的分类] 全局顺序消息和部分顺序消息. 上面订单的例子,其实是部分顺序 ...

  3. data encryption

    package com.itheima; import java.util.Scanner; /* * 需求:键盘录入数据,要求数据是四位的整数,现需要对数据进行加密,加密规则如下: * 每位数字都加 ...

  4. Volley1--为什么说Volley适合数据量小,通信频繁的网络操作

    前言 网络编程对于客户端来说是一块及其重要的地方,使用高效的网络请求框架将为你的系统产生很大的影响.而Volley作为谷歌的一个开源项目,炙手可热.有很多中小型公司的安卓移动客户端的网络程序都是基于v ...

  5. Android解析WindowManagerService(三)Window的删除过程

    前言 在本系列文章中,我提到过:Window的操作分为两大部分,一部分是WindowManager处理部分,另一部分是WMS处理部分,Window的删除过程也不例外,本篇文章会介绍Window的删除过 ...

  6. ElasticSearch初体验之使用

    好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结.现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三个 ...

  7. group by 一条语句实现多条语句的效果

    --一个sql 使用 group by 实现 4个 sql 的效果 select ProjectNumber,ClientName,jx,sf,sum(count) as TotalCount fro ...

  8. Azure 虚拟机如何配置 AntiMalware

    本文仅演示通过 PowerShell 方式安装并配置 AntiMalware 的过程. 经典虚拟机          立即访问http://market.azure.cn 加载 Antimalware ...

  9. c#之反射(Reflection)

    一.反射是什么 反射就是.Net FrameWork框架为我们提供的一个帮助类库,它可以读取我们通过编译后生成的dll和exe文件里面metadate的信息. 反射可以动态的加载dll和exe文件,动 ...

  10. Excel录入中实现单元格多选项自动下拉

    当我们在Excel表格中需要输入大量的重复数据时,往往利用数据的有效性来制作一个下拉菜单以提高重复数据的输入速度.但在实际的操作过程中,必须选中需要输入重复数据的单元格并单击该单元格右边的下拉箭头,才 ...