logbuffer日志缓冲区问题怎么解决
这篇“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日志缓冲区问题怎么解决”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。
当前题目:logbuffer日志缓冲区问题怎么解决
分享URL:http://myzitong.com/article/gejdco.html