大家好,我们现在的服务器用的是32位的windows 2003 内存为16G,oracle为9.2.0.1。我应该怎么管理oracle内存啊。       

解决方案 »

  1.   

    32位的不用别的工具处理,ORACLE的可分内存上限为1.7G。
      

  2.   

    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内存了。     
      

  3.   

    我的机器上那个multi(0)disk(0)rdisk(0)partition(1)="Microsoft  Windows  2000  Advanced  Server"  /3G  /fastdetect,这个东西已经打开。并且我的机器是windows 2003。还想问一下32位操作系统下oracle所能支持的内存有没有限制啊。