您好,登錄后才能下訂單哦!
交代一下環境,是現網實時生產數據庫主機。Hp-ux 11.31+Oracle 10.2.0.4.0 RAC集群。
兩臺機器戶外RAC,essdb3與essdb4兩臺機器。
物理內存128G,SGA分配64G,PGA分配5G。早上發現essdb4主機glance運行只有6G的空閑內存。
使用如下命令進行簡單分析:
SQL> select distinct sid from v$mystat; 得到sid,算算一個空閑進程占用的pga有多大。
SQL>select b.PGA_USED_MEM PGA_USED_MEM, b.PGA_ALLOC_MEM PGA_ALLOC_MEM,b.PGA_FREEABLE_MEM PGA_FREEABLE_MEM,b.PGA_MAX_MEM PGA_MAX_MEM from v$session a, v$process b where a.PADDR=b.ADDR and a.sid ='&sid'
輸入剛剛得到的SID號。算出一個空閑進程大概占用的內存,系統總的PGA的使用基本上穩定在1.29G到2G之間(系統設置的PGA的最大值是5G),與往常相比也是一個非常合理的狀態。
SQL> select sum(PGA_USED_MEM) from v$process;
SUM(PGA_USED_MEM)
-----------------
1298679359
我們使用ipcs觀察共享內存段的使用情況:
essdb4_oracle[/var/adm/syslog]$ipcs -mb
IPC status from /dev/kmem as of Thu Jun 23 10:18:00 2016
T ID KEY MODE OWNER GROUP SEGSZ
Shared Memory:
m 0 0x411c06cb --rw-rw-rw- root root 348
m 1 0x4e0c0002 --rw-rw-rw- root root 61760
m 2 0x4120077b --rw-rw-rw- root root 8192
m 3 0x00a5c581 --rw------- sfmdb users 10469376
m 4 0x411c14fb --rw------- root root 4096
m 13893637 0x00000000 --rw-r----- oracle oinstall 18790481920
m 6 0x06347849 --rw-rw-rw- root root 65544
m 7 0x0c6629c9 --rw-r----- root root 22614264
m 32776 0x01205c0a --rw-rw-r-- root root 4192
m 9 0x00000000 D-rw-rw-r-- root root 4192
m 10 0x00000000 D-rw-rw-r-- root root 4192
m 11 0x4918a061 --rw-r--r-- root root 22912
m 12 0x0120468b --rw-rw-r-- root root 4192
m 13 0x00000000 --rw-r----- oracle oinstall 18807521280
m 14 0x00000000 --rw-r----- oracle oinstall 18807259136
m 15 0x00000000 --rw-r----- oracle oinstall 12367142912
m 16 0x3546761c --rw-r----- oracle oinstall 135168
共享內存的詳細使用信息:
essdb4_oracle[/]#ipcs -mb
IPC status from /dev/kmem as of Thu Jun 23 13:42:57 2016
T ID KEY MODE OWNER GROUP SEGSZ
Shared Memory:
m 0 0x411c06cb --rw-rw-rw- root root 348
m 1 0x4e0c0002 --rw-rw-rw- root root 61760
m 2 0x4120077b --rw-rw-rw- root root 8192
m 3 0x00a5c581 --rw------- sfmdb users 10469376
m 4 0x411c14fb --rw------- root root 4096
m 13893637 0x00000000 D-rw-r----- oracle oinstall 18790481920
m 6 0x06347849 --rw-rw-rw- root root 65544
m 7 0x0c6629c9 --rw-r----- root root 22614264
m 32776 0x01205c0a --rw-rw-r-- root root 4192
m 9 0x00000000 D-rw-rw-r-- root root 4192
m 10 0x00000000 D-rw-rw-r-- root root 4192
m 11 0x4918a061 --rw-r--r-- root root 22912
m 12 0x0120468b --rw-rw-r-- root root 4192
m 13 0x00000000 --rw-r----- oracle oinstall 18807521280
m 14 0x00000000 --rw-r----- oracle oinstall 18807259136
m 15 0x00000000 --rw-r----- oracle oinstall 12367142912
m 16 0x3546761c --rw-r----- oracle oinstall 135168
共享內存段狀態為D - Delete,這在通常情況下是不正常的,這是一個Oracle用戶占用的共享內存段,由于狀態為D的共享內存段本身就是沒有正常使用的內存段,所以滿以為使用ipcrm –m id刪除這個共享內存段,應該就可以解決問題,但是,當時上述做法的結果是系統報告找不到找個ID。
essdb4_oracle[/]#ipcrm -m 13893637
現在我們使用shminfo要使用root權限,查看一下當前到底哪個進程在使用找個共享內存段:
essdb4_oracle[/]#shminfo -s 13893637
sh: shminfo: not found.
最后重啟該節點數據庫依然持有該共享內存,無果最后只能重啟操作系統,得到釋放,當前系統可用內存40G。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。