在aum模式下,undo_retention引數用以控制事務提交以後undo資訊保留的時間,undo資訊可以減少ora-01555錯誤及一系列的閃回查詢操作。該引數以秒為單位,在oracle 9ir1中初始值為900秒,在oracle 9ir2增加為10800秒。但是這是乙個非擔保性(no guaranteed)限制,也就是說,如果有其他事務需要回滾空間,而空間出現不足時,這些資訊仍然會被覆蓋,很多時候這是不希望被看到的。
從oracle 10g開始,如果設定undo_retention為0,那麼oracle啟用自動調整以滿足最長執行查詢的需要。當然如果表空間不足,那麼oracle最大允許的長時間查詢,而不在需要使用者手工調整。同時oracle增加了guarantee控制,也就是說,你可以指定undo表空間必須滿足undo_retention的限制,即使undo空間不足,oracle也不會**未過期的undo空間,這樣如果有使用者請求undo空間得不到滿足,則會報錯退出。oracle 通過這項機制使得使用者的期望可以被確保。
可以通過如下命令修改undo表空間的保證機制
alter tablespace undotbs1 retention guarantee;
alter tablespace undotbs1 retention noguarantee;
修改預設的undo retention引數設定
昨天,乙個朋友的資料庫資料被誤操作刪除掉了,請求我幫忙進行恢復。資料庫版本是oracle10g release 2的,我首先想到的是使用flashback query進行閃回恢復,不幸的是ora 01555,資料已經不能被閃回了。檢視當時的資料庫引數undo retention設定,發現這個引數被在...
修改預設的undo retention引數設定
昨天,乙個朋友的資料庫資料被誤操作刪除掉了,請求我幫忙進行恢復。資料庫版本是oracle10g release 2的,我首先想到的是使用flashback query進行閃回恢復,不幸的是ora 01555,資料已經不能被閃回了。檢視當時的資料庫引數undo retention設定,發現這個引數被在...
修改預設的undo retention引數設定
昨天,乙個朋友的資料庫資料被誤操作刪除掉了,請求我幫忙進行恢復。資料庫版本是oracle10g release 2的,我首先想到的是使用flashback query進行閃回恢復,不幸的是ora 01555,資料已經不能被閃回了。檢視當時的資料庫引數undo retention設定,發現這個引數被在...