Oracle
Oracle ORA-08103 故障排除 - 對像不再存在
我間歇性地從 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獲得其中的一些資訊。