Oracle ORA-08104報錯處理方法及注意事項

來源:互聯網
上載者:User

標籤:儲存   曆史   使用   status   object_id   alt   表操作   方式   line   

【環境介紹】

系統內容:IBM P740 8205-E6C (AIX) + 11.2.0.3.0 Oracle RAC

【背景介紹】

故障描述:資料庫資料表空間超過90%,無法進行擴容資料表空間,需要業務側清理曆史資料,在清理期間出現ORA-08104報錯,無法再進行清理資料。

反饋報錯資訊:

從資料庫報錯看出,有會話執行了重建索引操作或者重建索引操作時回退。

【問題分析】

查看資料庫日誌資訊:探索資料庫報錯,出現暫存資料表空間不足情況,查看當前表為分區表,大小為180多G,懷疑重建索引時暫存資料表空間不足導致復原。

查看等待事件資訊:沒有發現異常等待事件。

查看有會話對這個對象進行索引操作:根據使用者帥選,發現ACTIVE狀態會話沒有對該對象索引操作。

查看是否有大交易回復情況:查詢沒有大交易回復資訊。

查看是否僵死進程:根據對象名,定位sqltext,sql_id發現有INACTIVE狀態會話有重建索引操作

經過諮詢,需求方反饋期間對該對象重建索引操作,但是期間終端終端,之後重新刪除分區時報錯。

確認可以殺掉該會話,當前status為INACTIVE狀態,需要spid定位主機處理序殺掉,殺到進行後需要清理索引資訊,否則還是會報錯。

declare
done boolean;
begin
   done:=dbms_repair.online_index_clean(275314);---OBJECT_ID
end;
/

Drop Partition Failed With ORA-08104: This Index Object Is Being Online Built Or Rebuilt (文檔 ID 2358693.1)

 

【總結】

雖然操縱很簡單,但是注意的問題會有很多,準確評估才能使工程的正常完成:

刪除資料時,需要備份資料(物理備份,邏輯備份),制定正確清理策略,定期移動或者清理曆史資料,防止誤操作引起的資料丟失;

對於日誌類型監控表,建議使用分區方式儲存資料,方便清理曆史資料,SQL分區查詢效能最佳化;

對於全域索引建議在表比較小的情況下使用online方式重建索引;

重建索引時注意表大小和暫存資料表空間大小,對於對象較大的情況,建議使用並行方式重建索引;

建議使用指令碼刪除或者重建索引操作,防止網路引起終端斷開導致交易回復;

建議對錶操作後可根據分區進行收集統計資訊;

建議對分區表使用local index,全域索引刪除分區導致索引失效。

 

Oracle ORA-08104報錯處理方法及注意事項

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.