您的位置:首页 > 数据库 > Oracle

oracle 10g 在 32位 redhat as4.0 上使用8G大内存问题

2008-11-17 09:52 549 查看
在linux下,如果是32位的x86cpu,oracle只能访问2的32次方即4g以下的虚拟内存,默认情况下SGA最高只能到达1.7g。这样如果
我们有大于4g的内存,oracle却不能使用到,那么怎么能够使得oracle能够尽量使用到内存,提高SGA呢。有两种方法:一种方法是降低
mapped_base地址,从而把SGA的起始地址降低,从而达到扩大SGA的目的,如下:在oracle用户下运行

$make -f ins_rdbms.mk ioracle

但是此种方式也只能扩展SGA到2.7G。

还有一种方式,采用共享内存文件系统的方式(linux的bigpages):编辑/etc/fstab,更改shmfs项为:size为内存大小

shmfs /dev/shm shm nr_blocks=1310720,size=8g 0 0

运行:

umount /dev/shm

mount /dev/shm

用mount看看,是否/dev/shm有8g 下来,让linux支持bigpages:在/etc/sysctl.conf中更改

kernel.shm-use-bigpages=2

在grub.conf中加入

bigpages=8192MB

然后重新启动

更改init$sid.ora文件,设置

USE_INDIRECT_DATA_BUFFERS='TRUE'

db_block_buffers=2000000

注意db_block_buffers和一些cache参数不能混用,要把cache那些参数删除,这个值可以进行调整,以满足需求

然后:

$sqlplus /nolog

connect / as sysdba;

create spfile from pfile;

startup;

大功告成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: