oracle内存分配 大家好,我们现在的服务器用的是32位的windows 2003 内存为16G,oracle为9.2.0.1。我应该怎么管理oracle内存啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 32位的不用别的工具处理,ORACLE的可分内存上限为1.7G。 32位的WINDOW服务器通过4GT技术能让应用程序使用超过2G的内存 。 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内存了。 我的机器上那个multi(0)disk(0)rdisk(0)partition(1)="Microsoft Windows 2000 Advanced Server" /3G /fastdetect,这个东西已经打开。并且我的机器是windows 2003。还想问一下32位操作系统下oracle所能支持的内存有没有限制啊。 关于oracle登入问题 什么是数据字典 TEMP表空间占用99.99%,如何降低TEMP的占用率 一个SQL语句的问题 ORACLE sql执行速度的问题 如何在proc和oci中使用脚本 学学oracle ,java。 准备配台电脑,主机预算4300以下,麻烦各位推荐一下配置,谢谢 紧急!! imp 的导入问题? 如何把dmp文件导入到另一台机器的Oracle中?急啊 如何把这个sql语句写成存储过程? oracle9i 服务器登陆不进去 在Oracle database 插入问题? help me please
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内存了。