Undo表空間引發的災難

本人在公司搭建了三套oracle集羣,據開發同事反映,說集羣3的undo表空間老是爆滿,資源也不釋放,因爲業務問題,不能宕機。然後他就不斷的新建undo表空間,一直新建到undotbs6,本來默認是兩個的(undotbs1和undotbs2)。然後undo表空間越來越大,是在沒辦法了,他就通過刪除undo表空間的方法,不過刪除的時候,刪錯了,刪到了undotbs1,一共刪除了(undotbs1和undotbs4,undotbs5,undotbs6)。
當時undotbs2和undotbs3還是滿空間,就想着通過重啓,然後同事付託我重啓,然後沒有留意,就直接重啓。然後報錯。
Undo表空間引發的災難
無法找到對應的undo表空間。然後我就想了想,只能通過修改pfile的方法,通過把單一節點數據庫啓動到mount狀態,通過
create pfile='$ORACLE_HOME/dbs/ora_1214.ora' from spfile; 然後修改pfile,把undo表空間改爲undotbs2和undotbs3,然後通過pfile啓動數據庫,最後要通過當前的pfile創建spfile,要不然下次也會報錯。
這只是解決了正常啓庫的問題,最大的問題是undo表空間爆滿的問題,這樣刪除undo表空間只是治標不治本,以後還是重蹈覆轍。通過查資料,和查數據庫的參數,發現一個參數:undo_retention 事務提交後保存在undo表空間的時間被修改成了18000秒,也就是5個小時。
Undo表空間引發的災難
我的天,默認是900秒的,怪不得undo表空間一直不夠,原來是這個原因。業務不斷用,數據不斷累積,又不釋放。終於找到原因了,立馬把它改爲900秒。
呼~菜鳥的我又學到了東西了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章