oracle SGA配置和管理

Oracle对内存的管理的 优化从未间断,从8i到11g不断地提出新的管理概念。每个本版都对内存管理进行了简化:

  8i->9i:PGA的自动管理;

  9i->10g:SGA的自动管理;

  10g->11g:MEMORY(SGA+PGA)的自动管理。

  在11g中oracle引入了自动化内存管理(Automatic Memory Management)概念,仅用两个参数就能完成oracle的内存管理工作。

自动内存管理:
从9i开始,sga_max_size参数设置SGA 的内存大小,不能动态修改
从10g开始,指定了sga_target参数后,所有的SGA组件如:shared pool、 data buffer、 large pool都不用手工指定了,Oracle会自动管理。这一特性就是自动共享内存管理ASMM。如果设置了sga_target=0,就自动关闭自动共享内 存管理功能。Sga_target大小不能超过sga_max_size的大小。
手动管理SGA:
Alter system set sga_target=2000m;
Alter system set db_cache_size=1000m;
Alter system set shared_pool=200m;
Alter system set sga_target=0---------关闭自动共享内存管理ASMM
11G以后sga+pga整个内存可以自动管理AMM,相关 参数memory_max_target memory_target.设置好这两个参数后就不用关心SGA和PGA了
11g手动内存管理:
Alter system set memory_target=3000m;
Alter system set sga_target=2000m;
Alter system set pga_aggregate_target=1000m;
Alter system set memory_target=0;---------关闭自动内存管理AMM
SGA+PGA最好不要超过总内存的70%

[@more@]

查看SGA区剩余可用内存的方法

SQL> col OBJECT_NAME format a20
  SQL> col 自由空间百分比(%) format 90.99   --格式化,把小数点对齐为两位
  
  SQL> select name,
        sgasize/1024/1024        "Allocated(M)",
        bytes/1024            "自由空间(K)",
        round(bytes/sgasize*100, 2)   "自由空间百分比(%)"
     from (select sum(bytes) sgasize from sys.v_$sgastat) s, sys.v_$sgastat f
     where f.name = 'free memory';
  
  NAME Allocated(M) 自由空间(K) 自由空间百分比(%)
  -------------------------- ------------ ----------- -----------------
  free memory 54.4491119 11619.457 20.84
  free memory 54.4491119 600 1.08
  free memory 54.4491119 17788 31.90
  
在考虑设置oracle会话数的时候,有一个基本原则,oracle支持CPU个数的5-10倍的活动会话(Active)
这样情况下oracle的处理能力比较理想
需要根据观察oracle的活动会话情况调整应用服务的JDBC连接设置
如weblogic中JDBC的连接数设置并不是大越好,最好不要初始值等于最大值,初始值太大会造成oracle的活动会话多,会影响oracle的性能,合适的JDBC初始连接数是较好的

shared_pool_size=135000000
db_cache_size=400000000
large_pool_size=70000000
java_pool_size=16000000
sort_area_size=1048576
SGA_MAX_SIZE=750000000
SGA_TARGET=750000000
pga_aggregate_target=360000000
hash_area_size=1100000
processes=400
open_cursors=3000


主要是SGA、PGA、共享池(shared_pool_size)、缓冲池(db_cache_size)、大型池(large_pool_size)、JAVA池(java_pool_size)
还有processes、open_cursors
SGA=30%-40%物理内存
PGA=50%SGA
共享池=20%SGA
缓冲池=50%SGA
大型池=10%SGA
JAVA池=2%SGA
缓冲池>共享池

设置为归档模式
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;

调整参数
SQL> alter system set processes=800 scope=spfile;
系统已更改。
SQL> alter system set open_cursors=5000 scope=spfile;
系统已更改。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22036495/viewspace-1058784/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22036495/viewspace-1058784/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值