zoukankan      html  css  js  c++  java
  • log buffer

          log buffer 是SGA中一块循环使用的内存区域,它一般很小,因为有4个条件能够触发log buffer 中的redo 写入到log file中,缺省的设置为512kb,或者128kb*cpu_count (cpu_count由ORACLE自动设置,一般不需要更改)的最大值。

    在10g中ORACLE会自动调整它的值,他遵循这样一个原则,log_buffer+fixed size 是granule size 的整数倍(其实不能完全的说是整数倍,如果是一倍,那么他们的比值可能为0.999...如果是2倍,那么他们的比值可能是1.999......以此类推)。

    一般的granule value 为4194304 ,也就是4m,而fixed size 一般为 1.2m ,这个值不确定,也不精确,根据不同的平台有所差异,而默认的log_buffer+fixed size 的大小为 granule size 的整数倍,所以默认的情况下你看见的log_buffer大小约为6.67m或者为2.7M。

    所以如果我们手动的设置log_buffer的值,那么ORACLE会将它加上fixed size 然后除以granule ,得到一个值,然后四舍五入,看最接近哪个整数,然后就取最接近的那个值。

          其实一般默认情况下的log_buffer的大小够用了,查看Log_buffer是否需要调整,可以查看数据库是否有大量的log buffer space等待事件出现(一般通过AWR报表)。我们知道,redo log 最开始是在pga中的uga产生的(数据库一般是专有模式),oracle会把它拷贝到SGA中的log_buffer中去,如果log_buffer过小,或者lgwr不能够快速将redo 写入到log file中,那么就会产生log buffer space等待事件,遇到此类问题,可以增加 log_buffer大小,调整log file 到裸设备,I/0快的磁盘中。

          查看granule size

    SQL> select * from v$sgainfo where name='Granule Size';

    NAME                                  BYTES RES
    -------------------------------- ---------- ---
    Granule Size                        4194304 No
          查看  fixed size (show sga ,或者 v$sgainfo视图)

    SQL> show sga

    Total System Global Area  629145600 bytes
    Fixed Size                  1262392 bytes
    Variable Size             167775432 bytes
    Database Buffers          457179136 bytes
    Redo Buffers                2928640 bytes

    SQL> select * from v$sgainfo where name='Fixed SGA Size';

    NAME                                  BYTES RES
    -------------------------------- ---------- ---
    Fixed SGA Size                      1262392 No
    SQL> select (2928640+1262392)/4194304 from dual;

    (2928640+1262392)/4194304
    -------------------------
                   .999219894  可以看到(fixed size + log_buffer) /granule size 约为1倍,验证了上诉理论。

  • 相关阅读:
    使用boost的type_index打印数据类型
    display:flex;下的子元素width无效问题
    three.js 材质翻转
    qt5 打包exe执行文件
    脚本免交互生成秘钥
    脚本连接主机创建用户expect
    expect用法
    免密登录脚本expect
    shell变量的定义规则
    shell变量如何定义?
  • 原文地址:https://www.cnblogs.com/hehe520/p/6330695.html
Copyright © 2011-2022 走看看