服务器 频道

关于show sga结果的描述

  【IT168 服务器学院】关于show sga结果的描述

    Total System Global Area AAAAA bytes

    Fixed Size BBBBB bytes

    Variable Size CCCCC bytes

    Database Buffers DDDDD bytes

    Redo Buffers EEEEE bytes

    fixes size : oracle 的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面存储了 SGA 各部分 组件 的信息,可以看作 引导 建立 SGA 的区域

    Variable Size : 包括 shared pool ,java pool ,large pool, 管理DB_BLOCK_BUFFERS 的内存,管理控制文件信息的内存,等等其他管理和控制 oracle 内部结构的内存

    redo buffer

    分

    1: 设置参数

    SQL> show parameters log_buffer

    NAME TYPE VALUE

    ------------------------------------ ------- ------------------------------

    log_buffer integer 524288

    2:日志内存大小

    SQL> select * from v$sgastat where name like ''%log%'';

    POOL NAME BYTES

    ----------- -------------------------- ----------

    log_buffer 656384

    3 : 为了保护日志内存,而增加了辅助的内存,也就是保护页

    SQL> show sga

    Total System Global Area 496049552 bytes

    Fixed Size 454032 bytes

    Variable Size 109051904 bytes

    Database Buffers 385875968 bytes

    Redo Buffers 667648 bytes

    SQL>

    对于数据库来说,在不同 的平台下

    log_buffer 是离散的 一组值,假设是集合 R,并且不是按照 os blockck 或者 db block 为步长增加的,(比如可能是 65k,128k,512k ,641k....这样的值) 当设置参数为某个值的时候,数据库选择的实际大小是 大于等于 该值 的 min(R) ,根据这组值,比如你设置了 log_buffer = 600k ,则实际选择的是641 k

    然后,在实际分配内存的时候,为了 给 log buffer 做一些保护,还另外分配了一小部分空间,通常是 11 k 大小。

    则有641+11 = 652 k

    这才是 最后真正的 内存大小 ,也就是 show SGA 时候显示大小。

0
相关文章