lock_sga and pre_page_sga设置
生活随笔
收集整理的這篇文章主要介紹了
lock_sga and pre_page_sga设置
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
lock_sga and pre_page_sga設(shè)置
使Oracle的SGA常駐物理內(nèi)存
Oracle中的lock_sga和pre_page_sga這兩個(gè)靜態(tài)初始化文件參數(shù)是用來指示SGA如何使用操作系統(tǒng)內(nèi)存的。在Linux上啟動(dòng)Oracle數(shù)據(jù)庫的時(shí)候,如果設(shè)置了lock_sga=true,那么就有可能碰到如下的報(bào)錯(cuò)信息:SQL> startup;
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
這是因?yàn)長inux操作系統(tǒng)對應(yīng)用程序使用內(nèi)存有一些限制,在SHELL中使用ulimit命令可以查看到如下的信息:
[oracle@dev111 ~]$ ulimit -a | grep memory
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
virtual memory (kbytes, -v) unlimited
可以看出,lock_sga跟max locked memory的限制是存在沖突,如果保持lock_sga=true參數(shù)設(shè)置的話,必須修改Linux的max locked memory限制。在/etc/security/limits.conf這個(gè)配置文件中添加如下的一行(oracle是啟動(dòng)數(shù)據(jù)庫的操作系統(tǒng)賬號),意思是oracle用戶可以在物理內(nèi)存中鎖住任意大的空間:
oracle - memlock unlimited
之后使用oracle重新登錄系統(tǒng),數(shù)據(jù)庫就可以正常啟動(dòng)了!而另一個(gè)初始化參數(shù)pre_page_sga設(shè)置為true的話,數(shù)據(jù)庫啟動(dòng)的時(shí)候就會(huì)在內(nèi)存中分配好整個(gè)SGA,這將使Oracle數(shù)據(jù)庫的啟動(dòng)時(shí)間加長。
總結(jié)
以上是生活随笔為你收集整理的lock_sga and pre_page_sga设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle SQL Trace 和 1
- 下一篇: 对于analyze table使用