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)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-715718/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26110315/viewspace-715718/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值