当前位置: 移动技术网 > IT编程>数据库>Oracle > 关于Oracle的log_buffer该设为多大的问题分析

关于Oracle的log_buffer该设为多大的问题分析

2018年10月30日  | 移动技术网IT编程  | 我要评论

新版包青天,阿拉尔邮编,工程图学

各地现场的log_buffer都不一样,有的现场设置为200m,有的现场设置500k。到底应该设多大呢?

log_buffer是redo log的buffer。

因此在这里必须要了解redo log的触发事件(lgwr)

1、当redo log buffer的容量达到1/3

2、设定的写redo log时间间隔到达,一般为3秒钟。

3、redo log buffer中重做日志容量到达1m

4、在dbwn将缓冲区中的数据写入到数据文件之前

5、每一次commit--提交事务。

上面的结论可以换句话说

1、log_buffer中的内容满1/3,缓存刷新一次。

2、最长间隔3秒钟,缓存刷新一次

3、log_buffer中的数据到达1m,缓存刷新一次。

4、每次提交一个“事务”,缓存刷新一次

由此可以得出log_buffer一般在3-5m就足够了。超过3-5m,仅仅是浪费内存;当然太小了,也可能影响性能。在内存不太昂贵的今天,且如果你有大量“大事务”,log_buffer就设定为5m吧。

1、如何查看log_buffer大小?

sql>show parameter log_buffer

2、如何设定log_buffer

log_buffer是不能在线调整的。最简单的方法就是在init.ora文件中添加一句 "log_buffer=5000000"。 然后用这个init.ora重启oracle(sql>startup pfile=init.ora)

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网