在X2 Exadata上尝试做增量备份时遇到一个bug。


数据库版本信息:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

PL/SQL Release 11.2.0.3.0 - Production

CORE    11.2.0.3.0      Production

TNS for Linux: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 - Production


在enable block change tracking时hang住了。


SQL> alter database enable block change tracking using file '+RECO_ACWW';

----- hang住 -----


查看等待事件(v$session_wait):

SQL> set pagesize 1000

SQL> set linesize 120

SQL> col event for a30

SQL> col sid for 9999

SQL> col P1 for 9999999999999

SQL> col p2 for 9999999999999

SQL> col p3 for 9999999999999

SQL> select sid,event,p1,p1raw,p2,p3,WAIT_TIME

 2  from v$session_wait

 3  where event not in ('SQL*Net message from client','rdbms ipc message',

 4  'SQL*Net message to client','pmon timer','smon timer','wakeup time manager',

 5  'jobq slave wait','gcs remote message','Streams AQ: qmn slave idle wait')

 6  order by WAIT_TIME;


 SID EVENT                                      P1 P1RAW                        P2             P3  WAIT_TIME

----- ------------------------------ -------------- ---------------- -------------- -------------- ----------

4349 rdbms ipc reply                            52 0000000000000034     2147481569              0          0

 760 enq: CT - state change gate 2      1129578502 0000000043540006              3              2          0

1325 Space Manager: slave idle wait              0 00                            0              0          0

1513 PING                                        0 00                            0              0          0

1515 EMON slave idle wait                        0 00                            0              0          0

1893 EMON slave idle wait                        0 00                            0              0          0

2080 DIAG idle wait                              1 0000000000000001              1             30          0

2082 EMON slave idle wait                        0 00                            0              0          0

2271 EMON slave idle wait                        0 00                            0              0          0

2458 ges remote message                         80 0000000000000050              0             74          0

2460 EMON slave idle wait                        0 00                            0              0          0

3214 GCR sleep                                   0 00                            0              0          0

3216 DFS lock handle                    1128857605 0000000043490005             32              2          0

3217 class slave wait               ############## FFFFFFFFCB9D02A8              0              0          0

3404 VKRM Idle                                   0 00                            0              0          0

3782 wait for unread message on bro    26869449840 00000006418B4470    26607489368              0          0


查看v$session

SQL> select SID,program,event,blocking_INSTANCE,BLOCKING_SESSION from v$session where sid=760 or  sid=4349 or sid=3216;


 SID PROGRAM                                          EVENT                          BLOCKING_INSTANCE BLOCKING_SESSION

----- ------------------------------------------------ ------------------------------ ----------------- ----------------

 760 oracle@acwwdb01.cn.oracle.com (CTWR)             enq: CT - state change gate 2                  1             3216

3216 sqlplus@acwwdb01.cn.oracle.com (TNS V1-V3)       DFS lock handle                                1             4349

4349 oracle@acwwdb01.cn.oracle.com (CKPT)             rdbms ipc reply                                1              760


有3个session居然成了一个闭环,都hang住了。

其中sid 3216就是执行enable block change tracking的session。另外两个进程都是后台进程,CTWR和CKPT进程,这个时候如果在再开一个会话执行checkpoint操作,同样会被hang住。


这个问题在metalink居然找不到任何信息,应该是一个未公开bug。