一.   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。 解决这个问题一是升级数据库,二是定期重启操作系统。

Linux Top 命令详解

http://blog.csdn.net/tianlesoftware/article/details/6197783

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。

Unix vmstat 命令

http://blog.csdn.net/tianlesoftware/article/details/5464408

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。