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

oracle9i在window server 2003 sp2 企业版突破1.7G内存限制

2013-02-04 13:49 459 查看
1.我的oracle版本是9.2.0.1.0

2.AWE_WINDOW_MEMORY注册项和DB_BLOCK_BUFFERS怎么更改,直至跳到<1.7G内,他都提示超出内存,无法可想

最后如下解决:

1.os level 打开AWE。在boot.ini文件中增加/3G /PAE 字样,实际物理内存超过4G的用 /PAE就ok了。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Enterprise" /3G /PAE /fastdetect

2.db level
在注册表HKLM\Software\Oracle\Homex下增加AWE_WINDOW_MEMORY项,类型为字符串,数值为你需要让oracle使用普通内存作为缓存的大小,最小值要满足上面提到的公式。我设了1G也就是1073741824。
(很有意思的是我将这个值更改为2147483648时,启动数据库提示

SQL> startup
ORA-27102: out of memory
OSD-00017: Message 17 not found; product=RDBMS; facility=SOSD
O/S-Error: (OS 8) 存储空间不足,无法处理此命令。
---这时我设置的数据缓冲区的大小为3G,大于这个值。
这个错误我没有找到相关的资料,metalink上都没有。当我改为1.5G的时候,错误号变成了OSD-00022,呵呵,无语,但是我调到大概1.3-1.4G左右数据库没有提示错误,成功启动,说明这个值有最大值限制,但没有找到相关文档,SAP的一个文档中倒是提了一下)

更改初始化参数文件中的几个参数
注释掉db_cache_size参数
增加参数
DB_BLOCK_BUFFERS=196608
_DB_BLOCK_LRU_LATCHES=32

重启数据库,OK!
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 3650691024 bytes
Fixed Size 454608 bytes
Variable Size 427819008 bytes
Database Buffers 3221225472 bytes
Redo Buffers 1191936 bytes
数据库装载完毕。
数据库已经打开。

注意红色部分自己算(1.3G~1.4G)*1024*1024*1024就是AWE_WINDOW_MEMORY需要设置的值,大了或者小了都不行

问题解决,DB_BLOCK_BUFFERS可以随意设置,根据自己机器内存

参考:http://hi.baidu.com/linuxdba/item/d3060a51b0db200de6c4a5b0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: