客户环境是windows 32bit平台下,oracle的SGA 大于5G,数据库无法开启,会提示ORA-27102(out of memory)错误
解决方法:
要想使SGA超过1.7GB,则必须使用Windows提供的4GT(4G Tunning)技术
第一步:若Oracle是开启状态,需要进入MS-DOS命令行把oracle开关
SQL>conn / as sysdba
SQL>shutdown immediate
第二步:修改 boot.init的启动参数,加入 /5G /PAE切换开关(红色粗体部分)。
[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" /noexecute=optout /5G /PAE/fastdetect
第三步:修改注册表,Local_Machine/ software/oracle-home0中加入AWE_WINDOW_MEMORY,值为1073741824(此为缺省值为1G)
第四步:在Oracle中启用AWE修改初始化参数档,注释掉 DB_CACHE_SIZE参数,加入以下参数(红色粗体部分标识出来了):
USE_INDIRECT_DATA_BUFFERS = TRUE
DB_BLOCK_BUFFERS = 655360 (根据自己需求调整参照下面公式)
DB_BLOCK_SIZE=8192 (database数据库块大小为8k) 由此来决定data buffer大小
备注:Data Buffer Size=DB_BLOCK_BUFFERS*DB_BLOCK_SIZE=655360*8192=5,368,709,120
说明:DB_BLOCK_BUFFERS参数是在SGA中可作缓冲用的数据库块数。该参数决定SGA的大小,对数据库性能具有决定性因素。若取较大的值,则可减少I/O次数,但要求内存空间较大,每个缓冲区的大小由参数DB_BLOCK_SIZE决定。
第五步:登入系统,进入MS-DOS模式运行SQL*PLUS,开启数据库,看SGA有没有调整过来.
Microsoft Windows [版本 5.2.3790]
(C) 版权所有 1985-2003 Microsoft Corp.
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 2月 22 17:49:15 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup nomount;
ORACLE 例程已经启动。
Total System Global Area 5922357248 bytes
Fixed Size 1248528 bytes
Variable Size 545260272 bytes
Database Buffers 5368709120 bytes
Redo Buffers 7139328 bytes
SQL> alter database mount;
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24771067/viewspace-775007/ ,如需转载,请注明出处,否则将追究法律责任。