您好,登錄后才能下訂單哦!
二、實驗
[root@sam ~]# free -m total used free shared buffers cached Mem: 1993 1590 403 0 47 752 -/+ buffers/cache: 790 1203 Swap: 4095 0 4095 [root@sam ~]# uname -a Linux sam 2.6.39-400.17.1.el6uek.x86_64 #1 SMP Fri Feb 22 18:16:18 PST 2013 x86_64 x86_64 x86_64 GNU/Linux [oracle@sam ~]$ cat /etc/sysctl.conf |grep shmall # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 1073741824 on x86_64 # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 2097152 on i386 kernel.shmall = 1073741824
2.將該值調小至107374
[root@sam ~]# sed -i 's/kernel.shmall = 1073741824/kernel.shmall = 107374/g' /etc/sysctl.conf [root@sam ~]# cat /etc/sysctl.conf |grep shmall # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 1073741824 on x86_64 # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 2097152 on i386 kernel.shmall = 107374
3.檢查SGA參數后,重新啟動數據庫
SYS@orcl >show parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 800M sga_target big integer 0 SYS@orcl >shutdown immediate Database closed. Database dismounted. ORACLE instance shut down.
4.使修改后的參數生效
[root@sam ~]# sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 kernel.msgmnb = 65536 kernel.msgmax = 65536 fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 107374 kernel.shmmax = 2147483648 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500
5.修改SGA參數為1G后啟動數據
SYS@orcl >startup ORA-27102: out of memory Linux-x86_64 Error: 28: No space left on device Additional information: 1061158912 Additional information: 1
6.將系統參數shmall修改回源值并生效
[root@sam ~]# sed -i 's/kernel.shmall = 107374/kernel.shmall = 1073741824/g' /etc/sysctl.conf [root@sam ~]# cat /etc/sysctl.conf |grep shmall # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 1073741824 on x86_64 # oracle-rdbms-server-11gR2-preinstall setting for kernel.shmall is 2097152 on i386 kernel.shmall = 1073741824 [root@sam ~]# sysctl -p net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 kernel.msgmnb = 65536 kernel.msgmax = 65536 fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 2147483648 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 net.ipv4.ip_local_port_range = 9000 65500
7.啟動數據
SYS@orcl >startup ORACLE instance started. Total System Global Area 1068937216 bytes Fixed Size 2260088 bytes Variable Size 1010828168 bytes Database Buffers 50331648 bytes Redo Buffers 5517312 bytes Database mounted. Database opened.
8.檢查SGA參數
SYS@orcl >show parameter sga NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 1G sga_target big integer 0
三、總結
四、補充shmmax,shmmni,shmall參數學習
shmmni 這個內核參數用于設置系統范圍內共享內存段的最大數量。該參數的默認值是 4096,此值也是在系統中可以啟動的Oracle實例的最大數量,通常不需要更改,因為顯然在生產環境下,一個服務器上同時啟動的實例個數達不到這個數量。
shmall 該參數表示系統任意時刻可以分配的所有共享內存段的總和的最大值(以頁為單位),其值應不小于shmmax/page_size。例如上面的16G,可以為15461882265/4096 (getconf PAGESIZE可得到頁大小) = 3774873,或17179869184/4096=4194304,根據內存100%來推算內存8G為 2097152, 內存16G為4194304, 內存32G為8388608,內存64G為16777216。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。