資源描述:
《ORACLE內(nèi)核參數(shù)詳解》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、ORACLE內(nèi)核參數(shù)服務(wù)器內(nèi)存為4G的情況下?修改/etc/sysctl.conf文件(ROOT賬戶)?kernel.shmmax=2147483648?//公式:2G*1024*1024*1024=2147483648(字節(jié))?//表示最大共享內(nèi)存,如果小的話可以按實(shí)際情況而定,一般為物理內(nèi)存的一半(單位:字節(jié))?kernel.shmmni=4096?//表示最小共享內(nèi)存固定4096KB(由于32位操作系統(tǒng)默認(rèn)一頁(yè)為4K)?kernel.shmall=1048576?//公式:4G*1024*1024/4K=1048576(頁(yè))?//表示所有內(nèi)存大小(單位:頁(yè))?kernel
2、.sem=25032000100128?//4個(gè)參數(shù)依次是SEMMSL:每個(gè)用戶擁有信號(hào)量最大數(shù),SEMMNS:系統(tǒng)信號(hào)量最大數(shù),SEMOPM:每次semopm系統(tǒng)調(diào)用操作數(shù),SEMMNI:系統(tǒng)辛苦量集數(shù)最大數(shù)。這4個(gè)參數(shù)為固定內(nèi)容大小?fs.file-max=65536?//file-max固定大小65536?net.ipv4.ip_local_port_range=102465000?//ip_local_port_range表示端口的范圍,為指定的內(nèi)容?以上步驟做完執(zhí)行?/sbin/sysctl-p?使內(nèi)核生效?驗(yàn)證參數(shù)(root賬戶執(zhí)行):?#/sbin/sysctl-
3、a
4、grepshm?#/sbin/sysctl-a
5、grepsem?#/sbin/sysctl-a
6、grepfile-max?#/sbin/sysctl-a
7、grepip_local_port_range????對(duì)于unix操作系統(tǒng)中Semaphores問題只是針對(duì)和oracle相關(guān)問題作一些解釋。對(duì)于信號(hào)量和共享內(nèi)存段參數(shù)在不同的系統(tǒng)中可能有不同的參數(shù)對(duì)應(yīng),具體你去查詢對(duì)應(yīng)的OS文檔。在解決這類問題的時(shí)候我發(fā)現(xiàn)大部分問題都是因?yàn)樵诎惭boracle時(shí)沒有仔細(xì)閱讀針對(duì)指定OS的安裝說明造成安裝實(shí)例失敗,一般oracle的官方文檔都詳細(xì)說明在對(duì)應(yīng)操作系統(tǒng)上如何設(shè)置這些內(nèi)核參數(shù)。還有
8、就是因?yàn)槠渌騉S管理人員調(diào)整了參數(shù),但是沒有通知DBA,一旦oracle崩潰再次重新啟動(dòng)的時(shí)候就可能因?yàn)樾碌膬?nèi)核參數(shù)不合適而無法啟動(dòng)。?如果是oracle意外停機(jī)之后重新啟動(dòng)不成功,并出現(xiàn)類似ora-27123的錯(cuò)誤那么一定要詢問是否有其他人修改過內(nèi)核參數(shù),有時(shí)候你沒有修改并不代表其他人沒有修改!?1、與oracle相關(guān)的信號(hào)量和共享內(nèi)存段參數(shù)???一般unix系統(tǒng)中和信號(hào)量相關(guān)的是三個(gè)參數(shù)SEMMNISEMMSLSEMMNS。他們相互關(guān)聯(lián)決定系統(tǒng)可以分配的信號(hào)量。Oracle使用信號(hào)量完成內(nèi)部進(jìn)程之間的通信。???關(guān)于共享內(nèi)存段使用shmmx參數(shù)進(jìn)行總體控制。它指定了系統(tǒng)
9、可以分配的共享內(nèi)存段最大大小,實(shí)際并沒有分配那么多只是給出一個(gè)可以使用的最大限制。???對(duì)于類核參數(shù)的修改必須要重新啟動(dòng)系統(tǒng)之后才會(huì)生效。2、出現(xiàn)信號(hào)量和共享內(nèi)存段相關(guān)問題的情況??oracle只有在startupnomount的時(shí)候才會(huì)請(qǐng)求os的這些資源,用于建立SGA和啟動(dòng)后臺(tái)進(jìn)程。???有些情況下因?yàn)閛racle崩潰之后os沒有清除oracle分配的SGA,也可能造成共享內(nèi)存段不足,需要人工清除。3、如何解決相關(guān)的問題???你可以簡(jiǎn)單的修改init參數(shù)減少oracle對(duì)共享內(nèi)存段和信號(hào)量的需求。???對(duì)于控制信號(hào)量的三個(gè)參數(shù)SEMMNISEMMSLSEMMNS?。最終可以
10、使用的信號(hào)量由下面公式?提取?(semmsl*semmni)?或者?semmns中最小的值。????例如在linux下.進(jìn)入目錄/proc/sys/kernel;用cat命令或more命令查看semaphore當(dāng)前參數(shù)的值:?catsem?命令運(yùn)行后將會(huì)出現(xiàn)如下的結(jié)果:?2503200032128?其中,250是參數(shù)SEMMSL的值,32000是參數(shù)SEMMNS的值,32是參數(shù)SEMOPM的值,而128則是參數(shù)SEMMNI的值。250*128=32000對(duì)于oracle7需要信號(hào)量的設(shè)置等于init中processes的設(shè)置。對(duì)于8i9i需要等于processes*2。對(duì)于信號(hào)
11、量參數(shù)的設(shè)定一定要小心,因?yàn)椴徽_的設(shè)置可能會(huì)讓系統(tǒng)使用默認(rèn)值。這個(gè)值一般比oracle系統(tǒng)要求的低。在HPunix上遇到過這樣的問題,當(dāng)時(shí)在參數(shù)配置的時(shí)候指定兩個(gè)不同的sem-mni造成系統(tǒng)使用默認(rèn)的設(shè)置。對(duì)于共享內(nèi)存段,系統(tǒng)的設(shè)置至少要等于SGA的大小。?SemaphoresandSharedMemory?BULLETINStatus:PUBLISHEDContentType:TEXT/PLAINCreationDate:05-AUG-2001LastRevisionDate:05-AU