扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
这篇“log buffer日志缓冲区问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“log buffer日志缓冲区问题怎么解决”文章吧。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟主机、营销软件、网站建设、静宁网站维护、网站推广。log buffer(日志缓冲区)
change vector is a modification applied to something; executing DML statements
generates change vectors applied to data.
日志缓冲区是一个很小的,短期集结(change vectors)改变量的地方。
日志文件用于确保数据库中的数据不会丢失。应用于数据块的(change vectors)将会写
入日志文件中。会话产生日志信息到日志缓冲区,日志信息是通过后台进程LGWR写入日
志文件的。因为重做日志信息几乎实时的写入重做日志文件中,所以它比一般的oracle
内存结构组件小。所以该缓冲区不需要很大,接受推荐的大小就可以了(基于服务器的
CPU个数的推荐值)。但是不能设置重做日志缓冲区小于默认的值,如果这样oracle会自
动的设置为默认的值。调优的时候也是从默认值开始调整。日志缓冲区的大小在系统运
行期间是不可调整的,除非重启系统。可能在DML操作的高峰,日志信息产生的速度快于
LGWR的速度,这是DML操作会暂停毫秒。DML的操作速度不可能快过LGWR写重做日志的速度
(The process of flushing the log buffer to disk is one of the ultimate
bottlenecks in the Oracle architecture.)
If redo generation is the limiting factor in a database’s performance, the only
option is to go to RAC. In a RAC database, each instance has its own log buffer,
and its own LGWR. This is the only way to parallelize writing redo data to disk.
The size of the log buffer is static, fixed at instance startup. It cannot be
automatically managed.
查看日志缓冲区大小
SQL> show parameter log_buffer;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_buffer integer 5603328
注:触发LGWR写日志缓冲区的条件是:
一个会话执行了commit。
日志信息达到了日志缓冲区大小的三分之一,或者日志信息达到1mb。
DBWR打算写数据缓冲区中的脏数据(没有commit的数据)。
SQL> alter system set log_buffer=5m scope=spfile;
alter system set log_buffer=5m scope=spfile
ORA-02095: 无法修改指定的初始化参数
log_buffer是不能动态调整的。最简单的方法就是在init.ora文件中添加一句 "log_buffer=value"。
然后用这个init.ora重启Oracle(SQL>startup pfile=init.ora)
以上就是关于“log buffer日志缓冲区问题怎么解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联-成都网站建设公司行业资讯频道。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流