ORACLE 10G 如何使用超过1.7G的内存

时间:2009-03-31 22:27:00 来源:互联网 作者: 神秘的大神 字体:

如果你的ORACLE 版本是32位的,如果不做一些配置你是无论如何使用不到1.7G以上内存的。

前两天公司里一个软件系统,需要配置这样的环境,对于我这样的ORACLE所谓的高手,有点不知所措,甚至要硬着头皮去搞定它,
这可是到新公司接到的第一件活。必须搞定,否则ORACLE DBA就图有虚名了。 于是马上上网搜一下,文章果然,但是大都雷同,
而且针对的是ORACLE9I 的。我在实验的时候,也把客户的环境搞杂了,实在惭愧呀。不过经过一天多的折腾,也算是搞出来了。

软件环境:
Oracle 10.2.0.1
OS:Windows 2003 Server SP2 32bit

硬件环境:
内存:4G
CPU:Intel Core(TM)2 6300 1.86Ghz

这个环境很重要,特别是ORACLE的版本,跟ORACLE9i的配置肯定是不一样的。

1) 操作系统配置AWE,主要是修改boot.ini文件

    右击"我的电脑",选择"属性"-->高级选项卡,找到“启动与故障恢复”,单击“设置”,然后单击“编辑”,
    
   

加/PAE选项,修改后的文件如下:
    [boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /pae
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn

2) 配置oracle可以使用的内存,修改注册表。
   找到ORACLE的注册表项HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1,再你的机器上KEY_OraDb10g_home1不是这个名称,
   添加一个字符串值项:AWE_WINDOW_MEMORY ,这个值是你准备分配给数据库用的最大内存数(以BYTE为单位),例如你想分配4G,那这个值就是
   4*1024*1024*1024

 

3) 获取可编辑的ORACLE初始化参数文件
Windows 命令行

Sqlplus "/ as sysdba"   REM (如果登陆不进去将当前用户加入到ora_dba组中)

SQLPLUS>CREATE PFILE='初始化参数文件的路径' from spfile

SQLPLUS>Shutdown immediate

SQLPLUS>exit

4) 编辑ORACLE初始化参数文件
请用Ulatra editor(当然其他的也可以,但是千万不要用记事本) 打开在第三步生成的初始化参数文件(最好能备份一下,以便出现差错的时候还可以使用最初的文件启动)

第一注销掉以下行:
sga_max_size
sga_target
DB_CACHE_SIZE

修改或者添加以下参数
*.db_block_buffers=262144    #等于原来的DB_CACHE_SIZE/db_block_size, 例如你希望DB_CACHE_SIZE的大小是2G,则此值是2*1024*1024K/8K= 262144
*.SHARED_POOL_SIZE=419430400    #是以byte为单位的   400M(这个参数设置过大会报错的,因为ORACLE AWE的配置不是针对他的)
*.log_buffer=73400320           #是以byte为单位的   70M(这个参数设置过大会报错的,因为ORACLE AWE的配置不是针对他的)
*.use_indirect_data_buffers=true   # 这个参数的含义是我们是通过设置db_block_buffers来计算得到DB_CACHE_SIZE 

 

5) 启动ORACLE,并重新创建spfile。
 Windows 命令行下运行:
 Sqlplus "/ as sysdba"
 SQLPLUS>Startup pfile='第四步修改后的初始化参数文件的路径'
 SQLPLUS>Create Spfile from pfile='第四步修改后的初始化参数文件的路径'   #你会发现在你的ORACLE HOME/Database目录下新生成了一个文件SPFILEOracleSID.ORA
 SQLPLUS>Shutdown immediate

6) 将第三步生成的文件ORACLE HOME/Database/SPFILEOracleSID.ORA 复制到ORACLE HOME/dbs下

前面两步的目的是恢复缺省的以spfile参数文件方式启动数据库,否则你的设置都将无效

7) 重新启动Oracle
Windows 命令行
Sqlplus "/ as sysdba"
SQLPLUS>Startup