Oracle的log_buffer该设为多大?

各地现场的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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值