redolog的生命周期中共有四种状态:
current -> 正在使用的
active -> 非正在使用的,对应的Dirty Block还没有完全写入到数据文件中
inactive -> 非正在使用的,可以覆盖的,Dirty Block已经完全写入。
unused -> 没有使用过的
-- 查看redolog状态
SQL> select group#,status from v$log;

模拟三种状态下redolog丢失,处理方案:

一、inactive 情况 (Inactive表示Dirty Block已经完全写入。)

-- 查看redolog状态
SQL> select group#,status from v$log;

GROUP# STATUS
---------- ----------------
1 INACTIVE
2 CURRENT
3 UNUSED
SQL>
col member for a45;
select group#,status,type,member from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- ---------------------------------------------
3 ONLINE /home/oracle/app/oradata/orcl/redo03.log
2 ONLINE /home/oracle/app/oradata/orcl/redo02.log
1 ONLINE /home/oracle/app/oradata/orcl/redo01.log

--模拟 inactive 状态丢失
[oracle@11g orcl]$ rm -rf /home/oracle/app/oradata/orcl/redo01.log
-- inactive 丢失后的数据库症状
[oracle@11g trace]$ tail -f alert_orcl.log
Errors in file /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_m000_25727.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/home/oracle/app/oradata/orcl/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
SQL> alter system switch logfile; (多切几次日志后,会话hang住)
SQL> conn andy/andy (用户登录不进去)
ERROR:
ORA-00257: archiver error. Connect internal only, until freed.
Warning: You are no longer connected to ORACLE.

--处理流程
SQL> alter database clear logfile group 1 ;
alter database clear logfile group 1
*
ERROR at line 1:
ORA-00350: log 1 of instance orcl (thread 1) needs to be archived
ORA-00312: online log 1 thread 1: '/home/oracle/app/oradata/orcl/redo01.log'

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

GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 4 NO INACTIVE
2 5 NO INACTIVE
3 6 NO CURRENT

SQL> alter database clear unarchived logfile group 1;

Database altered.
-- 检查redo自否正常创建
[oracle@11g ~]$ cd /home/oracle/app/oradata/orcl/
[oracle@11g orcl]$ ll redo*
-rw-r-----. 1 oracle oinstall 52429312 Mar 25 13:44 redo01.log
-rw-r-----. 1 oracle oinstall 52429312 Mar 25 13:19 redo02.log
-rw-r-----. 1 oracle oinstall 52429312 Mar 25 13:36 redo03.log
SQL> alter system switch logfile;

System altered.
SQL> /
SQL> /
SQL> /
SQL> select group#,sequence#,archived,status from v$log
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 10 YES INACTIVE
2 11 YES INACTIVE
3 12 NO CURRENT
数据库恢复正常,OK。

————————————————————————————————————————————————————————

二、 active 情况 (Active是说日志组已经不是当前日志组,但是Redo Log Entry对应的Dirty Block还没有完全写入到数据文件中。)
--切换日志直至 redolog 的 status 出现 ACTIVE
SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 13 YES ACTIVE
2 14 NO CURRENT
3 12 YES ACTIVE
--模拟 ACTIVE 状态的 redolog 丢失
[oracle@11g orcl]$ rm -rf redo01.log
--数据库状态
[oracle@11g trace]$ tail -f alert_orcl.log
Errors in file /home/oracle/app/diag/rdbms/orcl/orcl/trace/orcl_arc2_23552.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/home/oracle/app/oradata/orcl/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Master background archival failure: 313
SQL> alter system switch logfile; (多次切换redolog,发现多次以后会话 hang 住)
--处理过程
SQL> select group#,sequence#,archived,status from v$log;
GROUP# SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
1 16 NO INACTIVE
2 17 NO INACTIVE
3 18 NO CURRENT

SQL> alter database clear unarchived logfile group 1;
--检查redolog是否正常生成
[oracle@11g orcl]$ ll redo*
-rw-r-----. 1 oracle oinstall 52429312 Mar 25 14:31 redo01.log
-rw-r-----. 1 oracle oinstall 52429312 Mar 25 14:32 redo02.log
-rw-r-----. 1 oracle oinstall 52429312 Mar 25 14:31 redo03.log
--多次切换日志,看数据库是否正常
SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> /

System altered.

SQL> /

System altered.

OK,一切正常。

Redo Log File(inactive、active)损坏,处理恢复对策的更多相关文章

  1. oracle rac下调节redo log file 文件大小

    rac下调节redo log file 文件大小 (1)查看当前日志信息: select * from v$logfile; (步骤2中得路径能够在这里MEMBER列看到,redo文件名称自己命名.比 ...

  2. Oracle Redo Log 机制 小结(转载)

    Oracle 的Redo 机制DB的一个重要机制,理解这个机制对DBA来说也是非常重要,之前的Blog里也林林散散的写了一些,前些日子看老白日记里也有说明,所以结合老白日记里的内容,对oracle 的 ...

  3. Oracle Redo log 状态及工作原理解析

    Oracle重做日志(redo log)是用来记录操作条目,用于数据库数据恢复.为了提高效率,oracle通常建议设置三组redo log.本文将对重做日志组的状态以及多种状态之间切换做解析,力求掌握 ...

  4. redo log

    1.redo log相关数据字典 v$log:display the redo log file information from the control file v$logfile:identif ...

  5. Oracle更改redo log的大小

    因为数据仓库ETL过程中,某个mapping的执行时间超过了一个小时, select event,count(*) fromv$session_wait group by event order by ...

  6. Oracle更改redo log大小 or 增加redo log组

    (1)redo log的大小可以影响 DBWR 和 checkpoint : (2)arger redo log files provide better performance. Undersize ...

  7. 完全揭秘log file sync等待事件-转自itpub

    原贴地址:http://www.itpub.net/thread-1777234-1-1.html   谢谢 guoyJoe 老大 这里先引用一下tanel poder大师的图: 什么是log fil ...

  8. binlog、redo log、undo log区别

    root@(none) 04:17:18>show variables like 'innodb_log_group_home_dir';+--------------------------- ...

  9. MySQL redo log及recover过程浅析

    写在前面:作者水平有限,欢迎不吝赐教,一切以最新源码为准. InnoDB redo log 首先介绍下Innodb redo log是什么,为什么需要记录redo log,以及redo log的作用都 ...

随机推荐

  1. Q: Why can't I access the Site Settings of my SharePoint site? 'File Not Found'

    Q: I am trying to access the Site Settings of my SharePoint site, but I get a File Not Found error, ...

  2. 爬虫入门【6】Selenium用法简介

    Selenium 是什么? 一句话,自动化测试工具.它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器. 如果你在这些浏览器里面安装一个 Selenium 的插件, ...

  3. JVM虚拟机参数

    追踪参数: 打印GC简要信息 -XX:+PrintGC 打印GC详细信息 -XX:+PrintGCDetails 打印CG发生的时间戳 -XX:+PrintGCTimeStamps 指定GC log的 ...

  4. Adam 算法

    简介 Adam 是一种可以替代传统随机梯度下降(SGD)过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重.Adam 最开始是由 OpenAI 的 Diederik Kingma 和多伦多大学 ...

  5. HDU - 1728 逃离迷宫 【BFS】

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1728 思路 BFS 一开始 从开始位置 往四周走 如果能走的话 这个时候 转弯次数都是0 我们的标记不 ...

  6. oc中的blocks的功能,一种比代理简洁的方式

    blocks方式: 谁要东西谁就要写blocks,通过blocks(返回值)获取想要的,提供东西的人要通过实现函数指针把东西给想要的人.当然也可以传值,传值需要通过形参. block的功能: bloc ...

  7. 316python 基础之计算机基础、Python简介、变量、注释、基础数据类型初识、if、while、语句

    一.计算机基础. cpu:相当于人的大脑,运算与控制中心. 速度 飞机 内存:4G,8G,16G....暂时存储,供给cpu数据. 速度 高铁.成本高,断电即消失. 硬盘:相当于你电脑的数据库,存储着 ...

  8. 第十篇、模块一、sys\os\hashlib模块的应用

    一.模块分为三种 1)自定义模块 2)第三方模块 3)内置模块 如何导入模块? 下面两种: 1)import 模块名字  as 别名(重新给模块命名) 2)from  模块名字  import 功能( ...

  9. 第二篇、HTML

    一.html文档树 二.HTML分类 块级标签和内联标签: 块级标签:<p><h1><table><ol><ul><form>& ...

  10. Android系统Recovery工作原理之使用update.zip升级过程分析(一)---update.zip包的制作【转】

    本文转载自:http://blog.csdn.net/mu0206mu/article/details/7399822 这篇及以后的篇幅将通过分析update.zip包在具体Android系统升级的过 ...