lock_sga and pre_page_sga设置
生活随笔
收集整理的這篇文章主要介紹了
lock_sga and pre_page_sga设置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
lock_sga and pre_page_sga設置
使Oracle的SGA常駐物理內存
Oracle中的lock_sga和pre_page_sga這兩個靜態初始化文件參數是用來指示SGA如何使用操作系統內存的。在Linux上啟動Oracle數據庫的時候,如果設置了lock_sga=true,那么就有可能碰到如下的報錯信息:SQL> startup;
ORA-27102: out of memory
Linux-x86_64 Error: 12: Cannot allocate memory
這是因為Linux操作系統對應用程序使用內存有一些限制,在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參數設置的話,必須修改Linux的max locked memory限制。在/etc/security/limits.conf這個配置文件中添加如下的一行(oracle是啟動數據庫的操作系統賬號),意思是oracle用戶可以在物理內存中鎖住任意大的空間:
oracle - memlock unlimited
之后使用oracle重新登錄系統,數據庫就可以正常啟動了!而另一個初始化參數pre_page_sga設置為true的話,數據庫啟動的時候就會在內存中分配好整個SGA,這將使Oracle數據庫的啟動時間加長。
總結
以上是生活随笔為你收集整理的lock_sga and pre_page_sga设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle SQL Trace 和 1
- 下一篇: 对于analyze table使用