AIX: 5300-07
oslevel -r
Oracle: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
select * from v$version
我們有一個ORACLE 資料庫,作業系統是AIX,運行已經有好幾年了。最近發生JBOSS AP在啟動建立資料庫連線的時候報錯,但不全然都會這樣,有些連線建立成功,因此這狀況就變成時有時無。在AP主機重啟時,就會報這錯,但AP還算能登入使用,只是有時候會反應有些功能沒有作業成功而報錯,錯誤訊息依然是以下這個。
WARN
[org.jboss.resource.connectionmanager.JBossManagedConnectionPool]
Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException:
Could not create connection; - nested throwable: (java.sql.SQLException:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not
exist
IBM AIX RISC System/6000 Error: 2: No such
file or directory)
get a new connection: null
Could not create connection
一般來說是無法連到DB主機
ORA-01034, ORA-27101: 網路上很多人說,這是資料庫沒有啟動好,或配置不良,應該是泛指剛剛建立完成的資料庫,但我們的已經運行好幾年了,應該不可能。
剛開始,就是拼命地把AP主機重新啟動,觀察AP主機上的執行環境是否有異常蠕蟲或病毒,甚至想要分散一台AP主機的負載量來測試,但方向都不正確。
觀察DB 主機的使用情況,使用ORACLE 身分登入主機
參考這篇文章 http://intermediatesql.com/aix/how-oracle-uses-memory-on-aix-part-1-processes/
參考這篇文章 http://intermediatesql.com/aix/how-oracle-uses-memory-on-aix-part-1-processes/
$ ps -elf |
egrep " oracle${ORACLE_SID} | ora_.*_${ORACLE_SID} " |
grep -v egrep | awk '{sum += $10} END {print sum/1024}'
53688.7
$ sysresv
$ sysresv
IPC Resources for ORACLE_SID "xxxxxxxx" :
Shared Memory:
ID KEY
1048577 0x6598f430
Oracle Instance alive for sid "xxxxxxxx"
$ ipcs -bm|grep 1048577
m 1048577 0x6598f430 --rw-r----- oracle dba 524296192 <--500mb p="">--500mb>
總共使用的記憶體: 53 GB + 500 MB =53.5 GB
ps -ef|grep oracle${ORACLE_SID}|grep -v grep |wc -l
540
select * from v$version
161
從資料庫裡查看SESSION 大約是161
很明顯兩邊的數量差很多,可能是程序已經離開,但ORACLE認為還在用沒放開,導致資源消耗。
161
從資料庫裡查看SESSION 大約是161
很明顯兩邊的數量差很多,可能是程序已經離開,但ORACLE認為還在用沒放開,導致資源消耗。
關閉所有AP連線行為,將ORACLE DB 重新啟動
shutdown immediate 等待約莫10分鐘,還是沒有shutdown
改用
shutdown abort 等待約莫3分鐘
觀察主機ORACLE 的程序數量
ps -ef|grep oracle${ORACLE_SID}|grep -v grep |wc -l
0
啟動資料庫
Startup
重新啟動AP主機服務,AP 啟動建立資料庫連線的時候,沒有在報錯
說實在的,AIX上的記憶體還真的是不太會看,以下列一些相關指令,參考看看
$ vmstat -v
2035712 memory pages
1957164 lruable pages
2663 free pages
1 memory pools
472236 pinned pages
80.0 maxpin percentage
10.0 minperm percentage
20.0 maxperm percentage
11.0 numperm percentage
215325 file pages
0.0 compressed percentage
0 compressed pages
11.0 numclient percentage
20.0 maxclient percentage
215323 client pages
0 remote pageouts scheduled
483 pending disk I/Os blocked with no pbuf
60078 paging space I/Os blocked with no psbuf
2484 filesystem I/Os blocked with no fsbuf
0 client filesystem I/Os blocked with no fsbuf
211963 external pager filesystem I/Os blocked with no fsbuf
0 Virtualized Partition Memory Page Faults
0.00 Time resolving virtualized partition memory page faults
$ vmstat
System configuration: lcpu=4 mem=7952MB
kthr memory page faults cpu
----- ---------------- ------------------------ ----------------- -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
1 2 1977424 2671 0 0 0 192 1610 0 76 2486 480 8 1 89 1
$ df -k
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 524288 257492 51% 8417 13% /
/dev/hd2 6291456 1376552 79% 95241 24% /usr
/dev/hd9var 524288 0 100% 2921 61% /var
/dev/hd3 1048576 508024 52% 2081 2% /tmp
/dev/fwdump 524288 523536 1% 5 1% /var/adm/ras/platform
/dev/hd1 524288 249000 53% 524 1% /home
/proc - - - - - /proc
/dev/hd10opt 1048576 532384 50% 8599 7% /opt
/dev/lv00 524288 507776 4% 18 1% /var/adm/csd
/dev/fslv00 10485760 4881856 54% 5167 1% /source
/dev/fslv01 94371840 21525676 78% 98843 3% /oradata