oracle使用超过2G内存的具体设置步骤:
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的空间来。
3 修改oralce 的 init.ora 文件
..1) 确定oracle的缓冲区及共享池大小,假设作如下定义:
........ db_block_size = 4096
........ db_block_buffers = 262144 # 缓冲区大小为1G
........ share_pool_size = 314572800 # 使用300M共享池
..2) 添加下列各项内容:
........ use_indirect_data_buffers = true
........ # 告诉oracle可以使用间接内存(即可以使用windows让出来的1G内存作为数据缓冲区)
........ pre_page_sga = true
........ # 把oracle SGA锁定到内存中,不产生页面交换文件(8i的参数可能是lock_sga = true)
........ # 对于一个有4G物理内存的系统来讲,可能这一个参数并不是必须的
4 修改注册表,定义oracle的DBbuffer使用常规内存大小
....在注册表 _Local_Machine中添加一个二进制值,名称为AWE_WINDOW_MEMORY ,值的单位为字节,大小为你需要让oracle使用普通内存作为缓存的大小(不是windows让出来的1G,而是内存地址在0x00000000 到 0x7FFFFFFF 之间的内存大小)。假如设为209715200,即200M大小,那么oracle的数据缓冲区将占用200M的普通内存,其余部分(1G - 200M = 824M)则使用间接内存。
5 重新启动操作系统,启动数据库。OK,你现在的 oracle 可以使用2G + 824M内存了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/92530/viewspace-517464/
,如需转载,请注明出处,否则将追究法律责任。