这个故事的起因是有同学在版本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/