redo文件三
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文件三的更多相关文章
- 【恢复】 Redo文件丢失的恢复
第一章 Redo文件丢失的恢复 1.1 online redolog file 丢失 联机Redo日志是Oracle数据库中比较核心的文件,当Redo日志文件异常之后,数据库就无法正常启动,而且有丢 ...
- 转储oracle的redo文件
1.确定当前使用的redo文件 SQL> select member from v$logfile where group# = ( select group# from v$log where ...
- redo文件一
redo log files and redo log buffer redo log files的作用的是确保数据库崩溃之后能正确的恢复数据库,恢复数据库到一,致性的状态 redo log file ...
- 重建redo文件
需求背景 由于前期安装oracle时redo文件大小或者路径规划不合理需要进行修改,以便满足性能测试要求.redo文件规划大小建议与生产环境一致. 重做日志相关数据字典 1.v$log 记录数据库中 ...
- Protocol Buffer学习教程之编译器与类文件(三)
Protocol Buffer学习教程之编译器与类文件(三) 1. 概述 在前面两篇中,介绍了Protobuf的基本概念.应用场景.与protobuf的语法等.在此篇中将介绍如何自己编译protobu ...
- 简单记录一次REDO文件损坏报错 ORA-00333重做日志读取块出错
一.故障描写叙述 首先是实例恢复须要用到的REDO文件损坏 二.解决方法 1.对于非当前REDO或者当前REDO可是无活动事务使用下面CLEAR命令: 用CLEAR命令重建该日志文件SQL>al ...
- redo文件四
v$session_wait 用来查询redo buffer的空间信息 select sid,event,seconds_in_wait,state from v$session_wait where ...
- redo文件二
为什么要引入LGWR后台进程和redo log buffer 如果使用前台进程来将redo的信息写入到redo日志文件组中,那么会导致并发的前台进程对redo日志文件组的争用,从而使用后台进程LGWR ...
- 从零開始学android<数据存储(1)SharedPreferences属性文件.三十五.>
在android中有五种保存数据的方法.各自是: Shared Preferences Store private primitive data in key-value pairs. 相应属性的键值 ...
随机推荐
- 【mongoDB运维篇②】备份与恢复(导入与导出)
导入/导出可以操作的是本地的mongodb服务器,也可以是远程的服务器 所以,都有如下通用选项: -h host 主机 --port port 端口 -u username 用户名 -p passwd ...
- 各种分区类型对应的partition_Id
ID Name Note == ==== ==== 00h empty [空] 01h DOS 12-bit FAT [MS DOS FAT12] 02h XENIX root file system ...
- Maven找不到java编译器的问题
当使用mvn package打包项目的时候,抛出下面这个错误: [ERROR] Unable to locate the Javac Compiler in: D:\jdk\..\lib\tools. ...
- c语言 快排排序
快速排序(Quick Sort): 这个算法的霸气程度从它的名字就可以看出来了.快速排序的应用也是非常广的的,各种类库都可以看到他的身影.这当然与它的“快”是有联系的,正所谓天下武功唯快不破. 快速排 ...
- Mybatis的if test字符串比较问题
1. Mybatis判断字符串是否为空的变态写法 <if test="bussSceneIsNull =='0'.toString() "> <![CDATA[ ...
- bzoj3926
题目的意思是叶子不超过20个……听说当初zjoi不少人被坑 分别对每个叶子以它为根dfs出20个dfs树,这样整个树的任何一个子串,都是某个dfs树上一个点到它的一个子孙的路径 每个dfs树,根到叶子 ...
- 基于AJAX的长轮询(long-polling)方式实现简单的聊天室程序
原理: 可以看:http://yiminghe.javaeye.com/blog/294781 AJAX 的出现使得 JavaScript 可以调用 XMLHttpRequest 对象发出 HTTP ...
- VS2010安装中遇到的错误
背景 用win7 64位系统安装VS2010遇到一个错误,网上查了各种资料也没有找到这种解决办法,后来自己找到了解决办法,分享一下,让他人少走一些弯路. 错误信息 安装过程中遇到如下错误: [08/2 ...
- 关于ecshop中jquery与js冲突解决的方案
ECShop把AJAX事件和JSON解析的模块放在common/transport.js之中,可以说它也有自己封装的一套工具,这其实是很正常的. 但恰恰的,在封装JSON各种方法的同时对objec ...
- OpenGL 顶点缓存对象
顶点缓存对象(Vertex Buffer Object,简称 VBO),允许开发者根据情况把顶点数据放到显存中. 如果不用 VBO,用 glVertexPointer / glNormalPointe ...