星期六, 四月 28, 2007

Ads3中sga如何突破1.7G/4G的限制

一 内存在4G以内的方法(比ads2.1操作简单一些)
#cd /home/oracle/9.2.0.4/rdbms/lib
#genksms -s 0x15000000 > ksms.s 必须root,需要有oracle环境变量
$make -f ins_rdbms.mk ksms.o 必须oracle用户
$make -f ins_rdbms.mk ioracle

通过这种方法,ads3上oracle9.2.0.4的sga可以达到2.6G左右,在4G的机器上也算是比较合理的配置,oracle10.1.0.1的sga照此方法也可以达到2.6G左右吧;genksms中的0x15000000可以提高到0x18000000,不过对sga的提高没有多大用处。

二 内存在8G以内的方法
9.2.0.4在安装时shmmax设置成2147483648即可,安装后用方法一可以将sga提高到2.6G左右,但无法突破4G的限制,只有使用very large memory参数啦,创建fpile,然后删除spfile,showdown数据库。
initsid.ora中添加
*.use_indirect_data_buffers=true
*.db_block_buffers=500000

然后重启动数据库,sga将达到4.5g左右,加上pga的1g,oracle将要使用的内存大约在6g以内,基本上算比较合理的配置啦;但oracle10.1.0.1使用该方法无效,如果谁找到了如何配置的请告诉我。
在8g内存的系统中,当db_block_buffers>520000时,就会报ORA-27102: out of memory
及Linux Error: 28: No space left on devic错误,如果你有解决办法,也请你告诉我;目前找不到将ads3上oracle10.1.0的sga突破4g的限制。

没有评论: