您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么維護(hù)ORACLE在各操作系統(tǒng)信號(hào)量與共享內(nèi)存”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么維護(hù)ORACLE在各操作系統(tǒng)信號(hào)量與共享內(nèi)存”吧!
1.LIUNX
cat /etc/sysctl.conf
共享內(nèi)存:
kernel.shmall = 2097152 # 可以使用的共享內(nèi)存的總量,單位:頁。 取值:推薦大于shmmax/page_size(getconf PAGE_SIZE 一般4096)
kernel.shmmax = 2147483648 # 最大單個(gè)共享內(nèi)存段大小。 取值:推薦大于sag_max_size
kernel.shmmni = 4096 # 整個(gè)系統(tǒng)共享內(nèi)存段的最大數(shù)目。 取值:默認(rèn)值
信號(hào)量:
kernel.sem = 5010 641280 5010 128 #SEMMSL, SEMMNS, SEMOPM, SEMMNI
每個(gè)信號(hào)對(duì)象集的最大信號(hào)對(duì)象數(shù);系統(tǒng)范圍內(nèi)最大信號(hào)對(duì)象數(shù);每個(gè)信號(hào)對(duì)象支持的最大操作數(shù);系統(tǒng)范圍內(nèi)最大信號(hào)對(duì)象集數(shù)。
SEMMSL
設(shè)置:最小250;對(duì)于processes參數(shù)設(shè)置較大的系統(tǒng)建議設(shè)置為processes+10
SEMMNS
設(shè)置:至少32000;SEMMSL * SEMMNI
SEMOPM
設(shè)置:至少100;或者等于SEMMSL
SEMMNI
含義:linux系統(tǒng)信號(hào)量set最大個(gè)數(shù)
設(shè)置:最少128
2.HPUX
信號(hào)量:
kctune -h -B semmni="4096" 全系統(tǒng)的最大信號(hào)量 Default: nproc(全系統(tǒng)進(jìn)程的最大數(shù))
kctune -h -B semmns="16384" 全系統(tǒng)內(nèi),用戶可訪問的最大信號(hào)量 Default: semmni*2
kctune -h -B semmnu="4092" 每個(gè)信號(hào)量的最大數(shù) Maximum: nproc-4
kctune -h -B semvmx="32767" 所允許的信號(hào)量值的最大數(shù) Maximum: 65535
共享內(nèi)存:
kctune -h -B shmmax="34359738368" 最大共享內(nèi)存段大小
kctune -h -B shmem=1 啟動(dòng)/關(guān)閉共享內(nèi)存 1(開啟)
kctune -h -B shmmni="4096" 系統(tǒng)上的最大段
kctune -h -B shmseg="512" 每個(gè)進(jìn)程的最大段 Maximum: shmmni
3.AIX
AIX一般不用手工調(diào)整,而是系統(tǒng)動(dòng)態(tài)的,如果運(yùn)行后報(bào)共享內(nèi)存或信號(hào)量不足,將maxuproc單個(gè)用戶允許的最大進(jìn)程數(shù) 調(diào)大即可(用命令smitty system或chdev)。
$su – root
#chdev –l sys0 –a maxuproc=1000
4.Solaris
修改Solaris 9里/etc/system,參考值如下所示:
信號(hào)量:
set semsys:seminfo_semmni=20000 指定最大信號(hào)標(biāo)識(shí)符數(shù)
set semsys:seminfo_semmsl=29000 指定每個(gè)信號(hào)標(biāo)識(shí)符的最大 System V 信號(hào)數(shù)
set semsys:seminfo_semmns=30000 系統(tǒng)上的最大 System V 信號(hào)數(shù)。
set semsys:seminfo_semopm=31000 指定每個(gè) semop 調(diào)用的最大 System V 信號(hào)操作數(shù)。
set semsys:seminfo_semmnu=32000 System V 信號(hào)系統(tǒng)支持的撤消結(jié)構(gòu)總數(shù)。
set semsys:seminfo_semume=10 可以由任一進(jìn)程使用的最大 System V 信號(hào)撤消結(jié)構(gòu)數(shù)
set semsys:seminfo_semvmx=32767 可以設(shè)置的最大信號(hào)值
共享內(nèi)存:
shmsys:shminfo_shmmni 對(duì)可以創(chuàng)建的共享內(nèi)存段數(shù)設(shè)置的系統(tǒng)范圍限制。
shmsys:shminfo_shmmax 可以創(chuàng)建的 System V 共享內(nèi)存段的最大大小。
----------
信號(hào)量與共享內(nèi)存管理
----------
1.ORACLE提供了sysresv工具管理共享內(nèi)存以及信號(hào)量
$ sysresv -l "ORCL" 查看實(shí)例對(duì)應(yīng)的信號(hào)量與共享內(nèi)存
IPC Resources for ORACLE_SID "ORCL":
Shared Memory:
ID KEY
65537 0x3b751258
Semaphores:
ID KEY
98304 0xe21c75d0
Oracle Instance alive for sid "ORCL"
sysresv -f參數(shù)可以移除共享段(僅適用于實(shí)例不存在,操作系統(tǒng)共享段不釋放條件)
$ export ORACLE_SID=orcl
$ sysresv -f orcl
2.操作系統(tǒng)級(jí)別可以通過ipcs/ipcrm管理(多實(shí)例下可以結(jié)合sysresv確定)
ipcs -a或ipcs 顯示當(dāng)前系統(tǒng)中共享內(nèi)存段、信號(hào)量集、消息隊(duì)列的使用情況;
ipcs -m 顯示共享內(nèi)存段的使用情況;
ipcs -s 顯示信號(hào)量集的使用情況;
ipcs -q 顯示消息隊(duì)列的使用情況;
清理相關(guān)共享內(nèi)存、信號(hào)量,隊(duì)列等共享信息命令如下:
ipcrm -s semid 刪除對(duì)應(yīng)的信號(hào)量集
ipcrm -m shmid 刪除對(duì)應(yīng)的共享內(nèi)存段
ipcrm -q msqid 刪除對(duì)應(yīng)的消息隊(duì)列
3.經(jīng)常有因?yàn)楣蚕韮?nèi)存、信號(hào)量,隊(duì)列等共享信息沒有干凈地清理而引起一些問題
比如:
SQL> startup
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates
這個(gè)時(shí)就可能需要清理相關(guān)的信號(hào)量(也可以增加信號(hào)量值)
感謝各位的閱讀,以上就是“怎么維護(hù)ORACLE在各操作系統(tǒng)信號(hào)量與共享內(nèi)存”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么維護(hù)ORACLE在各操作系統(tǒng)信號(hào)量與共享內(nèi)存這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。