oracle 2008突破2g限制,怎样突破oracleforwin2K的2G内存限制?

在32位的操作系统如win2K上,操作系统能管理的内存为4GB(power(2,32) =4G) ,oracle使用的总内存有2G限制。目前大多数信息系统都能为数据库服务器配上4G物理内存甚至更多,但无论你为系统配置多大的物理内存,正常情况下都不能使oracle使用超过2G的内存(包含SGA、PGA等),从而造成系统资源浪费。

那么,有没有什么办法能使运行在windows系统上的oracle使用超过2G的内存呢?windows 提供了一种叫4GT(4G Tuning)的技术,使得oracle使用超过2G(不超过3G)的内存成为可能。而为了让应用程序使用更大的内存,还有一种PSE36的技术,可以让oracle使用超过3G的内存。

这里,只对我们使用4GT特性让oracle使用超过2G的内存进行讨论。

一 使用4GT特性的基本要求:

。。。。尽管可以在不超过2G物理内存的系统上使用4GT特性,但oracle并不推荐这种做法,因为这将会严重降低系统性能。以我的经验来讲,如果系统未安装4G物理内存,最好也不要使用这种方法来让oracle使用更多的内存。

此外,在需要你的oracle使用超过2G的内存时,数据库服务器最好不要再运行其他的服务,以减小系统的压力,让oracle工作得更好。

。。。。另外,据MS的文档,4GT只能用于 Advanced Server , Datacenter版本上,Server 版以及 Professional 版不能使用4GT特性(实际上是不是也没有必要?)

二 为什么4GT能让应用程序使用超过2G的内存

。。。在正常情况下,windows系统对内存的分配是这样的:在内存地址0x00000000 到 0x7FFFFFFF之间的空间,交给应用程序使用,操作系统内核及其支持则使用内存地址 0x80000000 到 0xFFFFFFFF之间的空间。在使用4GT之后,操作系统将内核及其支持程序使用的内存地址空间压缩到 0xC0000000 到 0xFFFFFFFF之间,从而为应用程序“让”出来1G的空间。

但是,仅仅“让”出来了这1G的空间还是不够的,还需要指定哪一个应用程序来使用这“多出来的”1G空间,以及如何分配份额等。后面将结合具体的参数设置来讨论。为便于讨论,我们将正常情况下应用程序可以使用的2G内存(即地址在 0x00000000 到 0x7FFFFFFF 之间的内存)称作普通内存,而将windows “让”出来的1G内存(地址在 0x80000000 到 0xBFFFFFFF之间)称作间接内存.

三 oracle使用超过2G内存,不超过3G内存的具体设置步骤:

1 首先应卸载实例,关闭oracle服务。

2 打开操作系统3G开关:

。。。。修改boot。ini文件,在启动windows项中添加 /3G 参数。修改过后的boot。ini文件应该类似以下内容:

[boot loader]

timeout=8

default=multi(0)disk(0)rdisk(0)partition

(1)

[operating systems]

multi(0)disk(0)rdisk(0)partition

(1)="Microsoft Windows 2000 Advanced Server" /3G /fastdetect

注意在启动win2K AdvServer的一栏里,多了一个 /3G 参数。

这个参数的作用,就是让windows启动时,将自己的内核及支持程序装载到内存地址 0xC0000000 到 0xFFFFFFFF 之间,给应用程序留出3G的空间来。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值