oracle以32位运行,Oracle在 32位系统上运行突破sga1.7g的方法

在32bit或者64bit的平台上跑32bit的Oracle的时候,SGA总是受到限制,导致大内存的机器不能完全发挥作用,最近就专门找了一些关于调整最大SGA区的文档,看了看,感觉收获蛮大的,总结了一下几个平台的,但是不全,欢迎大家探讨补全。

我先把我总结的几个平台贴出来大家讨论讨论。

在RedHat ADVANCED SERVER2.1上扩展SGA(1.7G以上)

一.        目标:

1.        在一个4G以上的内存的机器上将SGA从1.7G增至2.7G

2.        兼容8.1.7,9.0.1,9.2.0版本的数据库

3.        整个SGA都能够被提高

二.        限制:

1.        只允许在本地启动和关闭数据库

2.        如果为PGA保存的虚拟内存太少就会导致ORA-4030的错误

三.        基本步骤:

1.        查看启动oracle用户的shel的进程号PID

ps -ef或者echo $$

2.        以root用户单独开一个进程,执行:

echo 268435456 > /proc/$PID/mapped_base

这个要对server上所有产生oracle进程的shell

3.        修改shmmax的值。用root用户执行

echo 3000000000 > /proc/sys/shmmax

4.        重新分配SGA

shutdown immediate所有的oracle实例

cd $ORACLE_HOME/lib

cp –a libserver9.a libserver9.a.org(备份liberver9.a文件)

cd $ORACLE_HOME/bin

cp –a oracle oracle.org(备份oracle文件)

cd $ORACLE_HOME/rdbms/lib

genksms –s 0x15000000 > ksms.s

make –f ins_rdbms.mk ksms.o(编译新的sga地址)

make –f ins_rdbms.mk ioracle(重新链接)

这样改过以后就可以支持到2.65G的sga,从而可以提高db_cache_size或者db_block_buffers去提高数据库的缓冲区了。

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值