Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2765837
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Oracle

2013-08-08 10:38:41

                                                                  使用ASMM和AMM时设置shared_pool

     从10g中引入了asmm后,相比以前的手动调整各种内存组件,在自动管理方面前进了一大步。DBA只需要定义sga_target和sga_max_target就可以了

其他的各种事情就交给oracle自己去搞定了.

   11g引入了amm,只需要定义memory_target和memory_max_target就可以了,oracle会自动分配pga和sga中的各个组件.一切变得更简单了.

      特别需要关注的是对shared_pool的调整,我们知道shared _pool非常重要,在自动管理的环境情,可能会被其他的内存组件占用shared_pool的空间,
当shared_pool空间不够时会引发各种各样的问题,严重情况一下会引起DB被hang住,有时候也把这种情况称为内存颠簸。在这里值得一提的是在自动管理
内存的环境下也可以定义各种组件的大小,这时候的定义是表示一个组件的最小值。所以非常建议给shared_pool_size手动设置一个最小值,这样保证shared_pool不
至于太小而引发的各种问题。初始大小设置为(memory_target*0.6)*0.4 .观察一段时间,再根据实际情况做部分修改.

 
     引发内存颠簸的情形还有可能是bug,具体可以参看mos相关文档,也可以设置_memory_broker_stat_interval参数,定义了每次进行resize的时间(可能调整或不调整),
default为30秒。在v$sga_resize_ops表现了resize的操作.

  另外还有db_recycle_cache_size和db_keep_cache_size需要手动设置.

 

阅读(4463) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~