online 建立索引失敗處理

yangzhangyue發表於2013-07-10
資料字典的維護工作就包含對IND$基表中相應索引記錄的FLAGS標誌位的恢復,但是如果服務程式在語句執行過程中意外終止的話,那麼短時間內FLAGS標誌位欄位就無法得到恢復,這將導致對該索引的後續操作因ORA-8104錯誤而無法繼續:

SMON負責在啟動後(startup)的每小時執行一次對IND$基表中因線上建立/重建索引失敗所留下記錄的清理。

注意因為SMON程式的清理工作每小時才執行一次,而且在工作負載很高的情況下可能實際很久都不會得到清理,在這種情景中我們總是希望能儘快完成對 索引的線上建立或重建,在10gr2以後的版本中我們可以直接使用dbms_repair.online_index_clean來手動清理online index rebuild的遺留問題:


  1. DECLARE  
  2.   RetVal        BOOLEAN;  
  3.   OBJECT_ID     BINARY_INTEGER;  
  4.   WAIT_FOR_LOCK BINARY_INTEGER;  
  5. BEGIN  
  6.   OBJECT_ID     := ;  
  7.   WAIT_FOR_LOCK := NULL;  
  8.   RetVal        := SYS.DBMS_REPAIR.ONLINE_INDEX_CLEAN();  
  9.   COMMIT;  
  10. END;  



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29033984/viewspace-765989/,如需轉載,請註明出處,否則將追究法律責任。

相關文章