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 分 : 设置参数 SQL> show parameters log_buffer NAME TYPE VALUE log_buffer integer 日志内存大小 SQL> select * from v$sgastat where name like %log%; POOL NAME BYTES log_buffer 为了保护日志内存而增加了辅助的内存也就是保护页 SQL> show sga Total System Global Area bytes Fixed Size bytes Variable Size bytes Database Buffers bytes Redo Buffers bytes SQL> 对于数据库来说在不同 的平台下 log_buffer 是离散的 一组值假设是集合 R并且不是按照 os blockck 或者 db block 为步长增加的(比如可能是 kkk k这样的值) 当设置参数为某个值的时候数据库选择的实际大小是 大于等于 该值 的 min(R) 根据这组值比如你设置了 log_buffer = k 则实际选择的是 k 然后在实际分配内存的时候为了 给 log buffer 做一些保护还另外分配了一小部分空间通常是 k 大小 则有+ = k 这才是 最后真正的 内存大小 也就是 show SGA 时候显示大小 |