Oracle

Oracle ORA-08103 故障排除 - 對像不再存在

  • July 25, 2012

我間歇性地從 Oracle 收到此錯誤。觸發器正在從分區表中截斷分區,同時針對它執行長時間執行的查詢。

由於我截斷的分區與我打算查詢的分區不同,因此我希望這可以工作。我懷疑一個流氓查詢計劃,在我想要(ITERATOR)或(JOIN-FILTER)的地方執行PARTITION LIST(ALL)。

查詢很複雜,需要連接多個分區表。

所以我的問題是:我能否從 Oracle 中獲取更多詳細資訊,以準確確定查詢中的哪個表(或索引)導致了問題?有什麼方法可以擷取發生錯誤時生效的查詢計劃?(如果我現在看,這可能與計劃不同)

您如何間歇性地收到錯誤?

您在截斷分區的觸發器中是否有任何日誌記錄?您可以使用一個簡單的過程來寫入(在自主事務中)關於哪個分區被截斷的一些資訊。

還按照 Leigh Riffel 的建議創建 on servererror 觸發器,並記錄查詢和錯誤堆棧。

最後,我將啟用對所有出現的長時間執行查詢的跟踪(假設此查詢不經常執行!):

alter session set sql_trace = true;
alter session set tracefile_identifier = wrschneider08103;

在查詢之前和

alter session set sql_trace = false;

後。

然後,一旦錯誤再次出現,請在最後一個跟踪文件上執行 tkprof,名稱中包含“wrschneider08103”…

希望您能夠關聯您收集的資訊。

您應該能夠使用ServerError Trigger獲得其中的一些資訊。

引用自:https://dba.stackexchange.com/questions/21288