调整重做日志缓冲区的大小

--调整LOG_BUFFER参数

--缺省值:512K或128K * cpu_count的值,二个中较大的一个

v$session_wait视图指明在”log buffer space%”事件过程中,是否存在因会话向日志缓冲区中写入数据的速度大于LGWR写出数据的速度,而产生的任何对日志缓冲区空间的等待。

select sid,event,second_in_wait,state from v$session_wait where event=’log buffer space%’

重做缓冲区再分配的统计比例:(redo buffer allocation retries)

redo buffer allocation retries 的值应该接近0。此数值不应大于重做条目的1%。如果该数值持续递增,则进程不得不等待缓冲区的空间。

SELECT r.VALUE "Retries",e.VALUE "Entries", r.VALUE/e.VALUE*100 "Percentage"

FROM v$sysstat r,v$sysstat e

WHERE r.NAME = 'redo buffer allocation retries'

AND e.NAME = 'redo entries'

等待可能是由于日志缓冲区太小、检查点操作或归档操作造成的。在这种情况下,可以:

--如果必要,通过更改初始化参数log_buffer的值来增加日志缓冲区的大小

--或者,改进检查点或归档进程

重做日志缓冲工通常很小,适当增加其大小可以显著提高吞吐量。

--因为不会发生日志切换,所以”log buffer space%”事件的seconds_in_wait值表明了用于等待重做日志缓冲区空间所用的时间。

这表明填充缓冲区的速度比LGWR写入更快,也可能表明在重做日志文件上发生了磁盘I/O

争用。

--v$sysstat视图中的” redo buffer allocation retries”统计信息反映了用户进程等待重做日志缓冲区空间的次数,等待日志缓冲区空间的目的是为了新条目复制到日志缓冲区,从而覆盖其中已被写出到磁盘的条目。LGWR的写入速度通常很快,足以确保缓冲区的空间总可以写入新条目,即使在对重做日志的访问很频繁也是如此。

重做日志缓冲区优化原则

不应出现”log buffer space”等待

select sid, event, seconds_in_wait, state from v$session_wait

where event = ‘log buffer space’;

“redo buffer allocation retries”值应接近0,并且小于重作条目的1%

select name,value from v$sysstat

where name in (‘redo buffer allocation retries’,’redo entries’;

“log buffer space%”事件seconds_in_wait参数

在v$session_wait中,如果”log buffer space%”事件的seconds_in_wait值表明在重做日志缓冲区中等待空间花费卫些时间,则可以考虑采取以下操作:

--如果日志缓冲区很小,则增加其大小

--将日志文件移动到更快的磁盘,如条带化磁盘。

select sid,event,second_in_wait,state

from v$session_wait

where event=’log buffer space%’;

研究LGWR释放缓冲区缓慢的可能原因:

--在重做日志文件中存在磁盘I/O争用。检查重做日志文件是否存储在单独的快速设备中。

a)在v$system_event视图中,检查发生 “log file switch completion%”事件的次数,该次数为由于日志切换而等待次数。

select event,total_waits,time_waited,average_wait from v$system_event

where event like ‘log file switch completion%’;

a)       如果在LGWR再次需要文件之前DBWn仍未完成设置文件检查点,LGWR将不得不等待。

--在alert.log文件中,检查”checkpoint not complete”消息。

--在v$system_event视图中,检查发生”log filel switch (check%”事件的次数,该次数为因未完成检查点而引起的日志文件切换等待的次数。

select event, total_waits, time_waited, average_wait

from v$system_event

where event like ‘log file switch(check%’;

--检查检查点的频率,并为fast_start_mttr_target设置相应的值。

--检查重做日志组的大小和数量。

b)       归档程序不能向已归档的重做日志文件中写入数据,或者完成归档操作的速度不够快。因此,它将阻止LGWR写入。

--确认归档设备空间未满,并添加重做日志组。

--在v$system_event视图中,检查发生”log file switch(arch%”事件的次数,该次数表明因归档问题而引起的日志文件切换等待的次数。

select event, total_waits,time_waited, average_wait

from v$system_event

where event like ‘log file switch(arch%’;

只要当前的ARCn进程数不足以处理工作量,LGWR进程就会启动新的ARCn进程。如果预计有繁重的归档工作量,例如,在批量加载数据期间,就可以用log_archive_max_processes初始化参数指定多归档程序进程的最大数量。此参数是动态参数,可以使用alter system语句进行更改。

调整重做日志缓冲区的大小相关推荐

  1. 如何配置重做日志高速缓存的大小

    数据库管理员应该要了解的是,重做日志文件的机制跟数据文件的管理机制类似.当因为数据更新.新建记录或者数据库结构变更产生重做记录时,其也不是马上写入重做日志文件中.而是先将重做记录写入到重做日志高速缓存 ...

  2. 简述oracle的日志缓冲区,2.4 重做日志缓冲区

    2.4  重做日志缓冲区 Oracle重做日志的概念是记录每个数据块插入某个值或者删除某个值的语句.假设某个Update语句更新了10个数据块,则按照Oracle重做日志的概念,会针对每个数据块记录一 ...

  3. 查看重做日志缓冲区大小

    select 'V$PARAMETRER' "View name",name, to_number(value,'9999999')  "Value" from ...

  4. oracle缓冲池大小如何查询,如何确定日志缓冲区的大小?

    今天早上看Oracle Concept,第一次接触了Granules这个概念,原以为可以解释这个问题,仔细一算还是对不上. Dynamic SGA Granules With dynamic SGA, ...

  5. oracle 归档日志 重做日志,Oracle的重做日志和归档日志

    一. 重做日志文件把对数据文件的修改在写入数据文件之前记录下来.日志文件以一种循环的方式被写入信息.当一个日志组被写满时,回自动向另一个日志组写入.管理员可以手工切换当前日志组.alter syste ...

  6. oracle查询数据库日志大小,Oracle的日志缓冲区大小查询方法———学习笔记 | 学步园...

    日志缓冲区Log_buffer是Oracle专门用于存入重做日志的内存区域. 数据库启动时,可以看到: SQL> startup ORACLE 例程已经启动. Total System Glob ...

  7. Oracle的日志缓冲区大小查询方法———学习笔记

    日志缓冲区Log_buffer是Oracle专门用于存入重做日志的内存区域. 数据库启动时,可以看到: SQL> startup ORACLE 例程已经启动. Total System Glob ...

  8. mysql 日志重做,設置MySQL重做日志大小

    什么是InnoDB事務日志 你有沒有在文本編輯器中使用過撤消或重做的功能,想像一下編輯器在那種場景下的操作?我確信你應該使用過.你相信嗎?事務型數據庫有同樣的功能.可能不完全一樣,但原理是相同的. 就 ...

  9. oracle重做日志论文,Oracle重做日志文件相关概念

    重做日志文件(redo log file)对于Oracle数据库至关重要.它们是数据库的事务日志.通常只用于恢复,不过也可以用于以下工作: q 系统崩溃后的实例恢复 q 通过备份恢复数据文件之后恢复介 ...

最新文章

  1. spring源码 — 一、IoC容器初始化
  2. EasyRE 寒假逆向生涯(5/100)
  3. 计算机组装的维修学测,《计算机组装与维修》课程学业水平测试卷(样卷答案).doc...
  4. 【数据库原理及应用】经典题库附答案(14章全)——第十章:数据库完整性
  5. overflow滚动条属性
  6. linux重启网卡的命令行,linux系统重启网卡命令
  7. 天天在用消息队列,却还不知道为啥要用 MQ ,这就尴尬了
  8. Architecture(5)电商APP组件化探索
  9. dapper 调用 存储过程返回值_数据库事务、存储过程、函数以及触发器之间的区别和联系...
  10. caffe的caffe.proto
  11. 微信私人心情录小程序源码
  12. 本地连接无法清除DNS缓存的解决办法
  13. pycharm 运行提示:@Error running ‘xx‘: Cannot run program “C:\Python27\python.exe“ (in directory “D:\...)
  14. VS系列编译器基本调试快捷键的使用
  15. SpringBoot项目对接短信平台Demo
  16. 论文、报告中那些乱七八糟的图(甘特图、卡吉图,桑基图,小提琴图,弦图,螺旋图,风玫瑰图)
  17. 【时间序列】多变量时间序列异常检测数据集整理及标准化处理代码合集
  18. 换号码的烦恼引起的思考
  19. 生命中,很多事是事在人为
  20. Noip 模拟 7 2018/10/24

热门文章

  1. 图片上添加自定义标记,可点击,可删除,可长按移动
  2. HDU2066:一个人的旅行(spfa)
  3. python读取ymal文件
  4. 利用LVS(Linux Virtual Server)系统实现Web服务器集群的负载均衡
  5. aws cli 上传文件到s3命令_使用 AWS CLI 分段上传到 Amazon S3
  6. 华为2018勇敢星实习招聘机试题
  7. GoldWave V5.55 绿色汉化版_声音编辑
  8. 自控力极差的人如何自救?
  9. 部署MariaDB服务器
  10. Wayfarer的《叩开C#之门》系列(图文并茂,推荐新手认真看一看)