据说32位oracle在Win2K平台有个2G内存限制,不知道这2G内存是指仅SGA区,还是oracle的所占用的全部内存,抑或是整个操作系统用到2Goracle就不能申请内存?假设平台:win2K,物理内存:3G,oracle版本8.1.7
如果windows2K系统显示内存使用超过2G的话,oracle是否还能正常工作?是使用虚拟内存还是报错?我的试验结果是oracle报ORA-04030: 在尝试分配 713216 字节 (cursor work he,kllcqas:kllsltba)时进程内存不足;而且不使用虚拟内存。不知道为什么不使用虚拟内存?难道大于2G的内存只能使用2G,其它的就只能白费么?对2G问题除了《突破oracle for win2K的2G内存限制》一文还有没有其它方法?

解决方案 »

  1.   

    http://www.itpub.net/showthread.php?s=&threadid=124424&perpage=15&pagenumber=6
      

  2.   

    多谢zmgowin(隐者(龙祖宗)
    但是如果只有3G内存,是不是当使用内存大于2G就报ORA-04030: 在尝试分配 713216 字节 (cursor work he,kllcqas:kllsltba)时进程内存不足;而且不使用虚拟内存。
    怎么样能利用虚拟内存?
      

  3.   

    当然是sga的内存啦,具体设置可以去oracle网站搜索vlm(very large memory)
    不过oracle优化中提过sga应该占物理内存的1/3至1/2大小,那么你的内存最小要有4gb啊!
      

  4.   

    还要一部分PGA啊,如果SGA+PGA超过2G呢?会不会用虚拟内存?
      

  5.   

    oracle我不知道能否使用虚拟内存,因为我oracle设置的占用内存从没有超过物理内存,但我的机器上oracle+其他应用程序是可以大于物理内存的。
    另外,限制确实是指sga+pga+其他oracle结构,这个你是对的。
    还有,oracle8i的限制是3gb,至于操作系统内存限制是另外一回事。
    你的oracle报错,一定是参数设置不正确所致,超过3gb,可以参考http://www.itpub.net/showthread.php?s=&threadid=124424&perpage=15&pagenumber=6