redo log files and redo log buffer

redo log files的作用的是确保数据库崩溃之后能正确的恢复数据库,恢复数据库到一,致性的状态

redo log files里面保存的都是数据库的变化信息,俗称为redo entry,由redo thread 将信息从





redo log buffer中写入到redo log files中,在每次写的时候都会分配一个LSN值,这个值是递增的





并且不会发生跳跃,log sequence number

介质恢复和实例恢复的不同:

介质恢复是当数据文件发生损坏时,所做的恢复,实例恢复是当数据库实例崩溃时做的恢复

介质恢复必须要手动进行恢复,而实例恢复是数据库在启动的时候又SMON进程自动进行的恢复工作

如何来确保已经提交的数据不会丢失?

oracle采用在数据提交之后,必须先将redo信息写入到redo log files中,当进行恢复的时候,只要





根据redo log信息来进行恢复即可。

如何来确保在数据库恢复的时候的性能和速度?

oracle采用checkpoint机制,在每次进行checkpoint的时候,都会在数据文件中和控制文件中记录下





当前的SCN值,当进行数据库恢复的时候,对比SCN值即可,从而只要恢复大于数据库文件的的SCN的





数据即可。

在进行log switch的时候,redo log files的状态变为可用分为两种情况:

当数据库为非归档模式的情况下:

redo log files必须等待DBWn将脏数据写入到数据文件中,防止此时数据库崩溃而导致数据文件无法





恢复

当数据库为归档模式的情况下

redo log files必须等待DBWn将脏数据写入到数据文件中,并且必须等待ARCn进程将redo log files





中的文件写入到归档日志文件中

redo log files以分组的形式存在,至少存在两个分组,每个组中的成员可以为一个或者是多个,当





是多个的时候,最好是2个,从而可以避免I/O性能,并且将组中的每个成员放倒不同的磁盘上,从而





可以避免单点故障的发生

LGWR负责将redo log buffer中的信息写入到redo文件中,并且是循环写的方式,当从一个redo文件





组切换到另外一个redo文件组的时候,这个时候称之为switch log files

redo log文件采用顺序写的方式写入到redo文件中,而datafiles是随机写的方式,从而使用redo文





件的时候能够大大的提高性能

在LGWR将redo buffer 中的内容写入到redo log文件中的时候,包括已经提交的事物,暂时未提交的





事物,这些数据都会写入到redo log文件中

redo文件一的更多相关文章

  1. 转储oracle的redo文件

    1.确定当前使用的redo文件 SQL> select member from v$logfile where group# = ( select group# from v$log where ...

  2. 【恢复】 Redo文件丢失的恢复

    第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...

  3. 重建redo文件

    需求背景 由于前期安装oracle时redo文件大小或者路径规划不合理需要进行修改,以便满足性能测试要求.redo文件规划大小建议与生产环境一致. 重做日志相关数据字典 1.v$log  记录数据库中 ...

  4. 简单记录一次REDO文件损坏报错 ORA-00333重做日志读取块出错

    一.故障描写叙述 首先是实例恢复须要用到的REDO文件损坏 二.解决方法 1.对于非当前REDO或者当前REDO可是无活动事务使用下面CLEAR命令: 用CLEAR命令重建该日志文件SQL>al ...

  5. redo文件四

    v$session_wait 用来查询redo buffer的空间信息 select sid,event,seconds_in_wait,state from v$session_wait where ...

  6. redo文件三

    switch logfile是一种昂贵的操作,在进行日志切换的时候,是不允许生成新的redo信息 在前台进程生成redo日志信息的时候,此时redo buffer已经分配了空间,并且在当前的redo日 ...

  7. redo文件二

    为什么要引入LGWR后台进程和redo log buffer 如果使用前台进程来将redo的信息写入到redo日志文件组中,那么会导致并发的前台进程对redo日志文件组的争用,从而使用后台进程LGWR ...

  8. dump redo日志文件的信息

    通常会用到以下两个命令:1.'alter session'命令用来dump redo日志的文件头2.'alter system dump logfile'命令用来dump redo文件的内容 以上命令 ...

  9. 【恢复】Redo日志文件丢失的恢复

    第一章 Redo文件丢失的恢复 1.1  online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...

随机推荐

  1. JTable单元格放自定义控件(一)-如何在JTable的单元格放JPanel

    原文链接:http://blog.sina.com.cn/s/blog_7f1c8c710101hdpf.html 最近自己尝试着模仿着实现一款非常有名的进销库存管理系统(智慧记)里面的一个功能.功能 ...

  2. Java学习笔记之:Java的数据类型

    一.介绍 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. Java语言提供了八种基本类型 ...

  3. python 编码问题(二)

    >>> a = '中文' >>> chardet.detect(a) {'confidence': 0.7525, 'encoding': 'utf-8'} > ...

  4. 57. Insert Interval

    题目: Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if nec ...

  5. linux下,如何把整个文件夹上传到服务器(另一台linux)

    1.Linux下目录复制:本机->远程服务器 scp  -r /home/shaoxiaohu/test1  zhidao@192.168.0.1:/home/test2 #test1为源目录, ...

  6. OpenRisc-52-run openrisc&orpmon on ml501 board

    引言 之前关于openrisc的内容,几乎都是基于opencores官方的ordb2a那个开发板的,但是,实际情况是有那个板子的人不是很多,所以目前我在做一个与之类似的板子,并且很快就会跟大家见面,这 ...

  7. linux下的共享库(动态库)和静态库

    1.什么是库在windows平台和linux平台下都大量存在着库.本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行.由于windows和linux的本质不同,因此二者库的二进制是不 ...

  8. chrome下float元素下input选中内容bug

    今天在写一个小demo的时候,发现chrome下一个很奇怪的bug. 我的代码如下: <!DOCTYPE html> <html lang="en"> &l ...

  9. 1033. Labyrinth(dfs)

    1033 简单dfs 有一点小小的坑 就是图可能不连通 所以要从左上和右下都搜一下 加起来 从讨论里看到的 讨论里看到一句好无奈的回复 “可不可以用中文呀...” #include <iostr ...

  10. hdu 1885 Key Task (三维bfs)

    题目 之前比赛的一个题, 当时是崔老师做的,今天我自己做了一下.... 还要注意用bfs的时候  有时候并不是最先到达的就是答案,比如HDU 3442 这道题是要求最小的消耗血量伤害,但是并不是最先到 ...