這個故事的起因是有同學在版本10.2.0.1(據說9i上也可能遇到)的一個主機運行198/248/249(24.9)天后OCI Client出現SPIN自旋消耗大量CPU的BUG,SPIN的起因是sltrgatime64()函數對times()函數的死迴圈調用;BUG號有《 4612267 OCI client spins when machine uptime >= 249 days》、 《OCI CLIENT IS IN AN INFINITE LOOP WHEN MACHINE UPTIME HITS 248 DAYS》。
這個BUG之所以能讓大家銘記,恐怕與其會因為和主機啟動並執行天數而觸發的特點不無關係; 10.2.0.1是10gR2的base release,又因為國內有大量的企業對資料庫 = 249 days》、 《OCI CLIENT IS IN AN INFINITE LOOP WHEN MACHINE UPTIME HITS 248 DAYS》。
這個BUG之所以能讓大家銘記,恐怕與其會因為和主機啟動並執行天數而觸發的特點不無關係; 10.2.0.1是10gR2的base release,又因為國內有大量的企業對資料庫 的版本patch set升級不夠重視,所以該BUG在07、08年之前時不時地給業界的朋友帶去困擾。
但實際上該 BUG被發現後,Oracle立即發布了在10.2.0.1上的one-off patch 來解決該問題,而且在後續的10.2.0.2 patch set中也引入了對該BUG的修複,換而言之除非你仍在使用版本10.2.0.1,否則你無需要擔心主機不重啟運行到某一日子會導致Oracle出故障。
結論:運行超過198天的主機上的Oracle可能遇到BUG導致CPU大量消耗這個傳說,對於版本10.2.0.1來說是不錯的,所以也並不能說這個資訊是不正確的。 但是對於patch set 10.2.0.2以後的版本無需杞人憂天這個問題了。
本文轉自CUUG官網技術文章。
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/