突破oracle for win2K的2G内存限制

oracle数据库内存调整 有关ORACLE数据库内存的调整,使得oracle运行更加快速、有效。 立即下载

  突破oracle for win2K的2G内存限制
   
    众所周知,在32位的操作系统如win2K上,操作系统能管理的内存为4GB(power(2,32) =4G) ,oracle使用的总内存有2G限制。目前大多数信息系统都能为数据库服务器配上4G物理内存甚至更多,但无论你为系统配置多大的物理内存,正常情况下都不能使oracle使用超过2G的内存(包含SGA、PGA等),从而造成系统资源浪费。那么,有没有什么办法能使运行在windows系统上的oracle使用超过2G的内存呢?windows 提供了一种叫4GT(4G Tuning)的技术,使得oracle使用超过2G(不超过3G)的内存成为可能。而为了让应用程序使用更大的内存,还有一种PSE36的技术,可以让oracle使用超过3G的内存。这里,只对我们使用4GT特性让oracle使用超过2G的内存进行讨论。
  一 使用4GT特性的基本要求:
  
  ....尽管可以在不超过2G物理内存的系统上使用4GT特性,但oracle并不推荐这种做法,因为这将会严重降低系统性能。以我的经验来讲,如果系统未安装4G物理内存,最好也不要使用这种方法来让oracle使用更多的内存。此外,在需要你的oracle使用超过2G的内存时,数据库服务器最好不要再运行其他的服务,以减小系统的压力,让oracle工作得更好。
  
  ....另外,据MS的文档,4GT只能用于 Advanced Server , Datacenter版本上,Server 版以及 Professional 版不能使用4GT特性(实际上是不是也没有必要?)
  
  二 为什么4GT能让应用程序使用超过2G的内存
  
  ....在正常情况下,windows系统对内存的分配是这样的:在内存地址0x00000000 到 0x7FFFFFFF之间的空间,交给应用程序使用,操作系统内核及其支持则使用内存地址 0x80000000 到 0xFFFFFFFF之间的空间。在使用4GT之后,操作系统将内核及其支持程序使用的内存地址空间压缩到 0xC0000000 到 0xFFFFFFFF之间,从而为应用程序“让”出来1G的空间。但是,仅仅“让”出来了这1G的空间还是不够的,还需要指定哪一个应用程序来使用这“多出来的”1G空间,以及如何分配份额等。后面将结合具体的参数设置来讨论。为便于讨论,我们将正常情况下应用程序可以使用的2G内存(即地址在 0x00000000 到 0x7FFFFFFF 之间的内存)称作普通内存,而将windows “让”出来的1G内存(地址在 0x80000000 到 0xBFFFFFFF之间)称作间接内存。
  
  三 oracle使用超过2G内存,不超过3G内存的具体设置步骤:
  
  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内存了。
  
  四 几个补充讨论
  
  1 windows系统“让”出来的1G间接内存,只能用于数据缓冲区
  
  ....在4GT特性测试中发现,间接内存只能用于数据缓冲区,而不能用于共享池,也不能分配给用户作为PGA。或许有其他的参数可以定义,但我查到的文献中没有任何一篇讲间接内存可以用于哪些地方,而在我们的测试中发现按上面的修改后,间接内存只能用于数据缓冲区。此结论只作为一个经验,不是定论,请各位大侠补充修正。
  
  2 注册表中 AWE_WINDOW_MEMORY 参数大小的定义
  
  ....这个参数定义缓冲池使用普通内存的大小,不能太小。在数据块大小为4K,缓冲池为1G(即使用262144个块作缓冲池)大小的情况下,此参数定义为100M时,oracle不能启动,定义为200M时正常启动。根据我阅读文献后对这个情况的理解,数据缓冲区的每一个块的块头信息都将存放于普通内存中,不能存放于间接内存中。如果此参数定义过小,导致缓冲区块头信息都不能存放,则可导致数据库启动失败。那么,是不是同样大小的缓冲区,数据库块越大,则这个参数就可以定义得越小,因而可以占用更少的普通内存呢?有待验证。
  
  ....在具体的应用中,如何定义此参数,应综合考虑最大并发连接数(专用服务器模式下)、用户重用的堆栈大小、排序区、共享池、大池等内存参数的设置情况,尽可能的将数据缓冲区放到间接内存中,充分利用系统的资源。
  
  3 间接内存的性能
  
  ....据oracle的文献讲,间接内存的性能(我想主要是指速度和效率吧?)不如直接内存,绝不推荐在未安装有4G物理内存的系统上使用4GT特性。我不知道如何比较间接内存与直接内存的速度和效率,因而未作测试,姑且信之。
  
  ....一点小结,期望能对大家有所启发。还请各位大侠补充指正。
  
  以上内容的测试环境:
  
  IBM X360 +4G内存 + RAID 5阵列
  
  Windows 2000 Advaced Server SP3 + oracle 8.1.6 专用服务器模式
FPGA:UART串口接收(高干扰情况) 在上一篇文章中介绍过UART串口接收模块,其中一个需要优化的方向就是在高干扰情况下,如何实现可靠的UART串口接收任务。 阅读详情

相关推荐

Avalonia使用CefNet 实现web-browsers(基于CentOS8 Arm64架构)

Avalonia使用CefNet 实现web-browsers(基于CentOS8 Arm64架构)

confused_kitten的博客 3777

增加oracle安装内存大小,Oracle初始安装内存设置参考

预备知识shared memory:共享内存段:一个内存区域,可以被不同的进程读取。oracle使用它来构成sga。oracle使用以下三种方法来创建一个sga区:1. 使用单个共享内存段。2. 使用连续多个共享内存段。3. 使用多个不连续共享内存段。oracle优先使用的一种方法,如果成功,则继续初始化,不成功则使用第二种方法,再不成功则使用第三种方法。如果再不成功,则初始化失败,oracle报...

weixin_35056962的博客 1107

主动式桥梁防船撞预警系统的方案汇总

本系统以精密光电测高前端(2台,上下游各1台)、固态雷达(2台,上下游各1台)、AIS(1台)、偏航辅助前端(4台,上下游各2台)为核心,通过人工智能,对画面上的船舶目标进行深度学习、精确定位,再用系统集成方法将各设备有机结合在一起,构建成套的桥梁防撞主动预警系统,全天候监控过往船舶。主动式桥梁防船撞预警系统主要船舶监测采集单元、控制单元、船舶超高、偏航信息检测单元、以及视频监控单元组成,,通过声光警示、短信文字、船舶身份识别及海事对讲频道、视频录像取证等多种手段与船舶进行信息互动,主动防止船舶碰撞桥梁!

gdxixun的博客 928

oracle 11G数据库实例增加内存

现状: 业务系统经常出现卡死,宕机的情况,但是具体查看服务器硬件资源都显示正常,无法判断问题出在哪里。 后思考,可能是orcl实例的内存资源有限,造成资源跑满,所以进行尝试更改系统内存资源操作。 1、服务器环境 winserver 2012oracle 11G 2、具体更改步骤: 登陆服务器,找到sqlplus----执行如下命令 用户名:sys /as sysdba ...

信安路上…… 2813

解决Oracle共享内存不足的方法

共享内存太小,分配给共享池的内存不足以满足用户请求,或者存在一定碎片,没有有效的利用保留区,造成无法分配合适的共享区。   问题:   ORA-04031: unable to allocate 19204 bytes of shared memory ("share

zouxistudent的专栏 1万+

突破oracle for win2K的2G内存限制

突破oracle for win2K的2G内存限制转自聚贤庄 作者未知========================================  众所周知,在32位的操作系统如win2K上,操作系统能管理的内存为4GB(...

csqm87956的博客 143

oracle 2008突破2g限制,突破oracle for win2K 的2G内存限制

众所周知,在32位的操作系统如win2K上,操作系统能管理的内存为4GB(power(2,32) =4G),oracle使用的总内存2G限制。目前大多数信息系统都能为数据库服务器配上4G物理内存甚至更多,但无论你为系统配置多大的物理内存,正常情况下都不能使oracle使用超过2G的内存(包含SGA、PGA等),从而造成系统资源浪费。那么,有没有什么办法能使运行在windows系统上的oracle...

weixin_33216916的博客 229

突破Oracle for win2k的2G内存限制

....众所周知,在32位的操作系统如win2K上,操作系统能管理的内存为4GB(power(2,32) =4G) ,oracle使用的总内存2G限制。目前大多数信息系统都能为数据库服务器配上4G物理内存甚至更多,但无论你为系统配置多大的物理内存,正常情况下都不能使oracle使用超过2G的内存(包含SGA、PGA等),从而造成系统资源浪费。那么,有没有什么办法能使运行在windows系统上的o

iihero@CSDN 1840

突破oracle for win2K 的2G内存限制

突破oracle for win2K 的2G内存限制 ....众所周知,在32位的操作系统如win2K上,操作系统能管理的内存为4GB(power(2,32) =4G) ,oracle使用的总内存2G限制。目前大多数信息系统...

congza2755的博客 114

突破oracle for win2K的2G内存限制 (转)

突破oracle for win2K的2G内存限制 (转)[@more@]突破ORACLE for Win2k的2G内存限制     众所周知,在32位的操作系统如win2K上,操作系统能管理的内存为4GB(power(2,32...

cuiji1279的博客 148

[转]突破oracle for win2K的2G内存限制

        众所周知,在32位的操作系统如win2K上,操作系统能管理的内存为4GB(power(2,32) =4G) ,oracle使用的总内存2G限制。目前大多数信息系统都能为数据库服务器配上4G物理内存甚至更多,但无论你为系统配置多大的物理内存,正常情况下都不能使oracle使用超过2G的内存(包含SGA、PGA等),从而造成系统资源浪费。那么,有没有什么办法能使运行在windows系...

weixin_33998125的博客 153
上一篇: 启动Oracle常见疑难问题分析
下一篇: Oracle与SQL Server的互连
ansy
博客等级 码龄21年 3粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值