Oracle

監控 Oracle 回滾段的最佳實踐是什麼?

  • October 1, 2011

有時,我們會用完回滾段空間,從而導致查詢/更新失敗。我可以從 Oracle DBA 那裡獲得哪些最佳實踐來確保主動監控並在問題發生之前採取適當的措施?

您使用的是什麼版本的 Oracle?您實際上是否在使用手動回滾段?或者您正在使用自動 UNDO 管理?如果您使用的是較新的 Oracle 版本(9i 或更高版本),那麼您確實應該使用自動 UNDO 管理。

假設您正在使用自動 UNDO 管理,您實際上只需要知道每單位時間您的數據庫生成多少 UNDO 以及您需要執行的最長查詢應該執行多長時間(或閃回查詢需要執行的最遠時間) . 然後,您只需將其設置UNDO_RETENTION為最長的查詢執行時間,並調整UNDO表空間的大小以保存在該時間間隔內生成的所有撤消(儘管具體情況取決於特定的 Oracle 版本)。

從那裡,DBA 可以相對容易地監控 UNDO 保留率的變化。然而,DBA 可能但可能更難監控執行時間最長的“真實”查詢中的更改,因為生產數據庫經常遇到可怕的失控查詢,其中有人試圖獲取報告並意外地進行笛卡爾連接或其他一些可怕的事情需要很長時間才能執行的昂貴操作。DBA 可能無法判斷是否有“真正的”長時間執行的查詢需要更長時間,或者長時間執行的查詢是否真的只是錯誤。應用程序開發人員通常更容易與 DBA 協作以確定查詢何時應該執行更長時間。這可能是開發人員剛剛知道的(即

引用自:https://serverfault.com/questions/317450