关于'kksfbc child completion' wait的一个bug

阅读更多

一个跑在aix操作系统上的Oracle 10.2.0.3的数据库,经常出现'kksfbc child completion' 的等待事件,并且这些等待事件一旦出现,这些等待事件和相关的session永远不会消失。


发现这个问题后,首先想到可能是oracle的bug,在metalink上查询这个等待事件,发现两个bug:


1、Bug 6795880,相关的doc id为:6795880.8
A session may go into an infinite spin just after a wait for 'kksfbc child completion'. The spin occurs with a stack including kksSearchChildList -> kkshgnc where kksSearchChildList loops forever.
This problem can also lead to internal error such as any of
ORA-600 [kksSearchChildList1], ORA-600 [kksSearchChildList2]
ORA-600 [kksSearchChildList3], ORA-600 [kkshgnc-nextchild]
Note:
Fixes for this bug in 10g and 11gR1 are disabled by default.
To enable this fix you must explicitly set the following parameter for instance startup:
"_cursor_features_enabled" = 10

2、Bug 5500044,相关的doc id为:430555.1
Cause Execution of DDL against a partitioned object which has a object-based column (CLOB in this particular case) could result in sessions blocking on the 'cursor: pin X' and 'kksfbc child completion' wait events.
Database Hung With "kksfbc child completion" and "Cursor: Pin X" Waits [ID 430555.1]
This is due to Bug 5500044 (Bug 5217203 is closed as duplicate)
Bug 5217203 - SYSTEM STATES DUMPED TO TRACE FILE MESSAGES IN ALERT.LOG
Bug 5500044 - ORA-44203 ON TABLE_X_X CHILD FROM CONCURRENT LOB APPEND AND DROP PARTITION
To be seeing this problem under 10.2 then you are likely to need to see the following:
1) DDL on a partitioned table
2)Sessions block on 'cursor: pin X' and 'kksfbc child completion'
3)The 'cursor: pin X' is waiting on a pseudo cursor (a cursor with a name that starts with "table_")
4)The partitioned table has an object column (LOB, CLOB etc)
Note:- This issue can also be seen on partitioned table no having object columns like LOB,CLOB, etc.
Solution Please download and apply patch 5500044 for your platform.
This bug has been fixed in 10.2.0.4 and 11g. In case the patch is not available for your platform, then raise a service request with Oracle support for requesting the same

经检查,在数据库中没有使用分区表,并且客户表示没有在数据库上执行过ddl语句,不符合Bug 5500044的描述,确定为Bug 6795880,解决方法是设置隐含参数:
"_cursor_features_enabled" = 10 过程如下:

SQL> alter system set "_cursor_features_enabled" = 10 scope=spfile;
SQL> shutdown immediate;
SQL> startup;

from:http://cnhtm.itpub.net/post/39970/494626

你可能感兴趣的:(关于'kksfbc child completion' wait的一个bug)