index (re)build online cleanup

业务报告,在索引重建时,客户端断了,再次重建时报ORA-08104,这时侯,我们一般需要做一下索引清理。
清理过程一般如下:

SQL> DECLARE
  2   isClean BOOLEAN;
  3  BEGIN
  4    isClean := FALSE;
  5    WHILE isClean=FALSE
  6    LOOP
  7      isClean := dbms_repair.online_index_clean(
  8      dbms_repair.all_index_id, dbms_repair.lock_wait);
  9      dbms_lock.sleep(10);
 10    END LOOP;
 11  END;
 12  /

但是有时侯清理过程会长时间无法完成,相关等待为index (re)build online cleanup:

                                                                                    SQL Child
       SID USERNAME        EVENT                                    SQL_ID             Number                     P1               P2           P3 LAST_CALL_ET
---------- --------------- ---------------------------------------- --------------- --------- ---------------------- ---------------- ------------ ------------
      3765 SYS             index (re)build online cleanup           fw6dkz236jqgt           0                 111476                4            0          853

检查BLOCKING_SESSION,发现没有会话阻塞。检查alert日志,发现如下内容

Tue May 09 18:38:45 2017
online index (re)build cleanup: objn=111783 maxretry=2000 forever=0
Tue May 09 18:42:13 2017
online index (re)build cleanup: objn=111782 maxretry=2000 forever=0
Tue May 09 18:45:41 2017
online index (re)build cleanup: objn=111783 maxretry=2000 forever=0
Tue May 09 18:49:09 2017
online index (re)build cleanup: objn=111782 maxretry=2000 forever=0
Tue May 09 18:52:47 2017
online index (re)build cleanup: objn=111783 maxretry=2000 forever=0
Tue May 09 18:56:15 2017
online index (re)build cleanup: objn=111782 maxretry=2000 forever=0
Tue May 09 18:59:42 2017
online index (re)build cleanup: objn=111783 maxretry=2000 forever=0
Tue May 09 19:03:09 2017
online index (re)build cleanup: objn=111782 maxretry=2000 forever=0
Tue May 09 19:03:50 2017
online index (re)build cleanup: objn=111783 maxretry=2000 forever=0

这是由于在清理时,有dml操作此表,函数一直loop去处理,但是没有处理成功,在alert里写入了这个日志。
这时侯就需要找到DML的会话,杀掉后再处理。
找的方法,先通过索引找到表,再通过表的object_id,在v$locked_object里找到相关会话,杀掉后就可以完成了。
处理过程比较简单,不再多说。

关于紫砂壶

感悟技术人生
此条目发表在OWI分类目录,贴了标签。将固定链接加入收藏夹。