switch logfile是一种昂贵的操作,在进行日志切换的时候,是不允许生成新的redo信息

在前台进程生成redo日志信息的时候,此时redo buffer已经分配了空间,并且在当前的redo日志文件组中也必定能写入这些数据





在进行日志切换的时候,步骤如下:

1、LGWR根据control file里的信息找到当前可用的日志文件组

2、LGWR将redo log buffer中的信息写入到当前的redo日志文件组中,并且产生一个SCN作为当前日志组的高位SCN

3、初始化可用的日志文件组,将老的日志文件组的状态设置为active,将可用的日志文件组的状态设置为current

4、将active的日志文件组进行归档,如果归档进程都在忙碌的话,那么在不超过归档进程最大数的情况下,产生新的归档进程来进行归档

5、发生一次checkpoint,将脏数据写入磁盘,当脏数据都写入磁盘之后,旧日志文件组的状态修改为inactive





事物的提交和回滚

一万条事物的提交和一条数据的提交速度基本上是相同的

而一万条事物的回滚和一条数据的回滚速度是相差很大的,一万条事物的回滚会持续很长的时间





如何减少switch logfile的次数

1、减少redo日志的产生量

2、加大redo日志文件组的大小





如何减少redo日志的产生量

使用nologging的操作,例如bulk操作、direct path write,在归档模式下,可以大大的减少日志的产生量





使用shutdown abort操作的时候

1、多使用几次alter system checkpoint

2、杀掉所有的LOCAL=YES和LOCAL=NO的进程

ps -ef|grep "LOCAL=NO" |awk '{print "kill -9 " $2}'|sh

3、使用shutdown abort(SMON进程结束了事务层面的回退操作,关闭了cache层面的恢复,也就是SMON已经开始进行临时段的的回收工作,此时就可以关闭数据库)





关于redo日志优化的建议

1、redo日志文件的大小

2、redo日志文件组的数量

3、redo日志文件的镜像数量

4、redo日志存储的性能

5、redo log buffer的大小

redo文件三的更多相关文章

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

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

  2. 转储oracle的redo文件

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

  3. redo文件一

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

  4. 重建redo文件

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

  5. Protocol Buffer学习教程之编译器与类文件(三)

    Protocol Buffer学习教程之编译器与类文件(三) 1. 概述 在前面两篇中,介绍了Protobuf的基本概念.应用场景.与protobuf的语法等.在此篇中将介绍如何自己编译protobu ...

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

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

  7. redo文件四

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

  8. redo文件二

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

  9. 从零開始学android<数据存储(1)SharedPreferences属性文件.三十五.>

    在android中有五种保存数据的方法.各自是: Shared Preferences Store private primitive data in key-value pairs. 相应属性的键值 ...

随机推荐

  1. lintcode:1-10题

    难度系数排序,容易题1-10题: Cosine Similarity new  Fizz Buzz  O(1)检测2的幂次  x的平方根  不同的路径  不同的路径 II  两个字符串是变位词  两个 ...

  2. 推荐:根据ISBN号查询图书信息的API - 豆瓣API

    转帖,出处:http://blog.csdn.net/berryreload/article/details/9126645 版权声明:本文为博主原创文章,未经博主允许不得转载. 找了半天,还是豆瓣的 ...

  3. Scanner演示

    import java.util.Scanner;                      /** *Scanner演示 */ public class ScannerDemo{ public st ...

  4. java对称加密(AES)

    java对称加密(AES) 博客分类: Java javaAES对称加密  /** * AESHelper.java * cn.com.songjy.test * * Function: TODO * ...

  5. SQL Server 和Oracle 数据类型对应

    SqlServer 2k转换为Oracle 10g 列名 SqlServer数据类型 SqlServer长度 Oracle数据类型 column1 bigint 8 NUMBER(19) column ...

  6. 【转载】git/github初级运用自如

    之前了解过github,并在上面看了一些项目的源代码,于是自己也在github上创建了账户,希望以后有机会也把自己的项目托管在上面去.但是前提你要先了解git/github,下面的内容是从我的好基友虫 ...

  7. (贪心5.2.1)UVA 10026 Shoemaker's Problem(利用数据有序化来进行贪心选择)

    /* * UVA_10026.cpp * * Created on: 2013年10月10日 * Author: Administrator */ #include <iostream> ...

  8. Linux进程调度和切换过程分析

    内容: (1):从schedule()开始,几种不同类型的进程之间的调度选择;在相同类型的进程之间的调度选择算法 (2):从CPU的IP值的变化上,说明在switch_to宏执行后,执行分析 (3): ...

  9. 如何屏蔽LOGD\LOGI等打印输出

    今天被打印信息的去除困扰了,想了想,如果靠一个一个的改动未免太繁琐.因此就仔细的看了下这部分的打印原理.当然下面只是简单的进行了知识罗列不过有需要的朋友可以随便看看.说不准会有些收获呢. Includ ...

  10. Lunix中文乱码解决方案

    sudo vi /var/lib/locales/supported.d/local#添加下面的中文字符集zh_CN.GBK GBKzh_CN.GB2312 GB2312zh_CN.GB18030 G ...