台灣最大程式設計社群網站
線上人數
1250
 
會員總數:242752
討論主題:187712
歡迎您免費加入會員
討論區列表 >> Blog精華文章 >> BUG 4612267 OCI CLIENT IS IN AN INFINITE LOOP WHEN MACHINE UPTIME HITS 248 DAYS
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
BUG 4612267 OCI CLIENT IS IN AN INFINITE LOOP WHEN MACHINE UPTIME HITS 248 DAYS
價值 : 0 QP  點閱數:488 回應數:0

樓主

花旗蔘 版主
高級專家
10938 129
4309 516
發送站內信

上週六 3/23 13:00左右,正準備跟女友出遊,突然接到同事來電,說系統掛了,而db無法連線,即使local os 驗證:sqlplus / as sysdba 也是hang 住,於是取消行程趕回公司,開始檢查發現,alert log/trace file/data file/control file/redo log 等..最後修改時間 都停留在約03:00左右,alert log 裡無異常訊息,最後一筆就是約03:00 的log switch而已,而sqlplus 無法使用,即使用prelim mode 也是hang住,沒有進一步的訊息,ps -ef 發現早該執行完的cron job的process 也都hang住  ex:expdp/rman/...,db 就像"FREEZE"住了,原本懷疑HD掛了無法寫入資料,但測試也都正常,

於是開始上oracle support 及google 找尋線索,在oracle support 找到相關NOTE:
SQL*Plus 10.2.0.1 Hangs, When System Uptime Is Long Period of Time [ID 338461.1]
Bug 4612267 - OCI client spins when machine uptime >= 249 days [ID 4612267.8]

my env:
RDBMS:Oracle 10.2.0.1 EE
OS:OL 5.8 x86

初步判斷 可能就是該bug 造成:

BUG 4612267 OCI CLIENT IS IN AN INFINITE LOOP WHEN MACHINE UPTIME HITS 248 DAYS

但心中仍有懷疑點,於是google 該bug 看看是否有其它苦主的跡像可供參考,發現

1、天數:不一定是248天trigger 此bug,有些人是在約198/199天trigger bug,於是查了一下,3/23 剛好距離上次 我restart server/instance  剛好差199天。

2、cpu high to 100%:產生一份OSW report 比對,發現在該時間點(約03:00) cpu的使用率達到 100% 也有大量的run queue/context switch 的現像 如下圖
 forbsblog_0323.jpg

種種現像符合,看來就是這個bug了,因為時間的考量及影嚮性,決定不upgrade db 而是apply one-off patch.就是開始apply patch

ps:在apply 上prod 前 請先在test 環境 先行驗證測試

---1 download patch
p4612267_10201_LINUX.zip
 
--
cd /u01/app/oracle
mkdir patches
cd patches
--upload p4612267_10201_LINUX.zip
unzip p4612267_10201_LINUX.zip
cd 4612267
 
--check lsinventory
$ORACLE_HOME/OPatch/opatch lsinventory
 
-----shutdown instance /listener
 
---apply patch
$ORACLE_HOME/OPatch/opatch apply
 
/*
........
Do you want to proceed? [y|n]
y
.......
ApplySession adding interim patch '4612267' to inventory
The local system has been patched and can be restarted.
OPatch succeeded.
*/
 
---check  lsinventory again,patch id 有在列表中 就OK了!
$ORACLE_HOME/OPatch/opatch lsinventory
 
 
-------Then start instance/listener  and check!!
 
這樣就完成了! 
 
==================剛好順便修正一個 zero impact的bug
參考oracle note:
Memory Notification: Library Cache Object Loaded Into Sga [ID 330239.1]
 
其它就不多述了。
 
------
alter system set "_kgl_large_heap_warning_threshold"=52428800 scope=spfile;
--then restart instance
 

本篇文章發表於2013-03-28 11:48
== 簽名檔 ==
Oracle/EBS/MS SQL DBA
--My BLOG
http://itgroup.blueshop.com.tw/benchenBEN/blog
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
目前尚無任何回覆
   

回覆
如要回應,請先登入.