如果你的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