在一HPUX11.23的操作系统上,物理内存为4G,SGA设为2G,想将所有SGA锁定在物理内存中,使页入、页出减少,所以设置如下:
alter system set lock_sga=true scope=spfile
重启数据库发现不能启动,报错。请问在UNIX下还要调哪个系统内核参数后,才能设置lock_sga=true?
或不调内核参数,怎样设置?

解决方案 »

  1.   

    试一下吧,lock_sga = true 的问题
    由于几乎所有的操作系统都支持虚拟内存,所以即使我们使用的内存小于物理内存,也不能避免操作系统将SGA 换到虚拟内存(SWAP)。所以我们可以尝试使得SGA 锁定在物理内存中不被换到虚拟内存中,这样减少页面的换入和换出,从而提高性能。但在这里遗憾的是,windows 是无法避免这种情况的。下面我们来参考在不同的几个系统下怎么实现lock_sga
    AIX 5L(AIX 4.3.3 以上)
    logon aix as root
    cd /usr/samples/kernel
    ./vmtune (信息如下) v_pingshm已经是1
    ./vmtune -S 1
    然后oracle用户修改initSID.ora 中 lock_sga = true
    重新启动数据库HP UNIX
    Root身份登陆
    Create the file "/etc/privgroup": vi /etc/privgroup
    Add line "dba MLOCK" to file
    As root, run the command "/etc/setprivgrp -f /etc/privgroup":
    $/etc/setprivgrp -f /etc/privgroup
    oracle用户修改initSID.ora中lock_sga=true
    重新启动数据库SOLARIS (solaris2.6以上)
    8i版本以上数据库默认使用隐藏参数 use_ism = true ,自动锁定SGA于内存中,不用设置lock_sga, 如果设置 lock_sga =true 使用非 root 用户启动数据库将返回错误。WINDOWS
    不能设置lock_sga=true,可以通过设置pre_page_sga=true,使得数据库启动的时候就把所有内存页装载,这样可能起到一定的作用。 不过你的内存才4G,就没多大的必要了.
      

  2.   

    shmin,shmax改了没?一般HP改了这个参数就好了,不用设lock_sga
      

  3.   

    Root身份登陆 bbs.bitsCN.com   Create the file "/etc/privgroup":  vi /etc/privgroup 
      Add line "dba MLOCK" to file    As root, run the command "/etc/setprivgrp -f /etc/privgroup": 
      $/etc/setprivgrp -f /etc/privgroup   oracle用户修改initSID.ora中lock_sga=true   重新启动数据库 bitsCN_com