一. Bug問題表現
CPU使用率100%,vmstat 顯示有大量等待啟動並執行進程,有大量的環境切換。 sqlplus 和 lsnrctl 命令無效。 資料基本是hang住了。 啥都不能用。
該bug 存在與Oracle 10.2.0.1.
1.1 Top 顯示
top - 04:46:06 up198 days, 22:05, 5 users, load average: 16.20, 16.63, 21.22
tasks: 112 total, 19 running, 93 sleeping, 0 stopped, 0 zombie
cpu(s): 26.3%us, 73.0%sy, 0.0%ni, 0.6%id, 0.0%wa, 0.0%hi, 0.1%si, 0.0%st
mem: 4026344k total, 3255488kused, 770856k free, 279252k buffers
swap: 4192924k total, 369088kused, 3823836k free, 2835992k cached
結合網上google的結果,該bug 對cpu 表現是。使用者使用30%左右,系統使用70%。
系統啟動198天,會觸發這個bug。 解決這個問題一是升級資料庫,二是定期重啟作業系統。
1.2 vmstat 命令
[root@localhost ~]# vmstat 2
procs -----------memory---------- ---swap-------io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
36 0 369092 503308 2481042815564 1 1 31 5 0 0 1 1 97 1 0
36 0 369092 503308 2481042815600 0 0 0 10 1047 237 26 74 0 0 0
38 0 369092 503308 2481042815600 0 0 0 0 1045 232 25 75 0 0 0
...
--這裡r 表示等待啟動並執行進行,一般小於cpu的個數。 這裡超過36. 超過CPU 很多倍,而且in 值過高。 in 表示context switch。
1.3 sqlplus 和 lsnrctl 命令不可用
使用這2個命令時,沒有反應,掛住。包括sqlplus -prelim /nolog.
二. Bug 4612267 說明
MOS 上的2篇相關文章:
Bug 4612267 - OCI client spins when machineuptime >= 249 days [ID 4612267.8]
SQL*Plus 10.2.0.1 Hangs, When System UptimeIs Long Period of Time [ID 338461.1]
說明如下:
Affects:
|
Product (Component) |
Oracle Server |
|
Range of versions believed to be affected |
Versions < 11 |
|
Versions confirmed as being affected |
10.1.0.5
10.2.0.1 |
|
Platforms affected |
Generic (all / most platforms affected) |
Fixed:
|
This issue is fixed in |
10.2.0.2
11.1.0.6 (Base Release |
Description
OCIclients may spin once the machine has been up for longer than 249 days (24.9days on some machines). The spin will show repeated calls to times() fromsltrgatime64().
--根據官網的說法,是OS 系統超過249天,就會觸發這個bug。 有時候是24.9 * N 天。 從我google的結果看,基本都是在198和199這兩天觸發這個bug。