AWR分析案例之buffer cache

今天查看awr快照,发现如下异常情况:

1、该主机190G的内存,数据库版本为11.1.0.7.0,操作系统AIX 6.1,内存管理使用AMM

内存管理参数设置如下

SQL> show parameter memory_max_target
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
memory_max_target                    big integer 110G
SQL> show parameter memory_target
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
memory_target                        big integer 110G
SQL> show parameter sga_max_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_max_size                         big integer 110G
SQL> show parameter sga_target
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_target                           big integer 0
SQL> show parameter pga
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 0
SQL> show parameter db_cache_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_size                        big integer 256M

       2Buffer cacheshared pool要小很多,一般buffer cache是物理内存的35%~40%Shared pool是物理内存的5%~10%

224141466.png

       3Direct path read表示有表发生了全表扫描,且这个表的数据大小大于buffer cache10%

而现在buffer cache的大小为仅为1792M

224143731.png

      4Shared pool中大部分都是free,有30G之多的free

224146129.png

        5Db cache size如果设置了值,指的是buffer cache最小值,而在这参数文件中,

设置的值为256M,太小了吧

224148396.png

      6、解决方案

Buffer_cache现在是1792M,在线手动设置db_cache_size2G,该参数是可以在线调整的,但报错了

SQL> show parameter db_cache_size
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_cache_size                        big integer 256M
SQL> alter system set db_cache_size=2G;
alter system set db_cache_size=2G
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-00384: Insufficient memory to grow cache

在线手动设置shared_pool_size39G调整为30G,发现shared pool并无变化,则将该参数设置还原为之前的设置,默认为0

SQL>alter system set shared_pool_size=0;

最终的解决方案是:设置db_cache_size的初始大小为物理内存的30%,重启数据库后,观察buffer cacheshared pool的大小

SQL>alter system set db_cache_size=60G scope=spfile;

 

你可能感兴趣的:(cache,buffer,buffer,wait,busy,db_cache_size,awr分析)