復原段損壞的修複執行個體

來源:互聯網
上載者:User

前幾天同事打電話過來,說公司的開發庫每天死4,5次
正好今天回公司,順道看了一下

檢查alertlog,發現成百上千的報錯,全部是:
Errors in file D:\oracle\admin\croot\bdump\crootSMON.TRC:
ORA-01578: ORACLE data block corrupted (file # 22, block # 14715)
ORA-01110: data file 22: 'D:\ORACLE\ORADATA\CROOT\TRBS1.ORA'

file#=22的檔案是復原段資料表空間中的一個資料檔案,很明顯復原段資料區塊損壞了。
但是資料庫還算能用,可以正常開啟,但是無法正常關閉,
關閉的時候報:
Shutting down instance (immediate)
License high water mark = 90
Mon Oct 25 12:03:23 2004
ORACLE Instance croot (pid = 6) - Error 1578 encountered while recovering transaction (2, 50).
Mon Oct 25 12:03:23 2004
Errors in file D:\oracle\admin\croot\bdump\crootSMON.TRC:
ORA-01578: ORACLE data block corrupted (file # 22, block # 14715)
ORA-01110: data file 22: 'D:\ORACLE\ORADATA\CROOT\TRBS1.ORA'

然後整個執行個體就crash了

檢查壞塊所在的對象,發現是RBS01,再檢查dba_rollback_segs視圖,發現除了RBS01是online狀態,其它的都是partitial available狀態,手工將其餘的復原段online以後,就無法再次offline了,立刻有active的transaction佔據復原段,停掉了所有的其它會話,仍然是這種情況,查看v$trasaction視圖,已經沒有任何記錄顯示還有正在啟動並執行事務了。

這種情況,無法正常地drop掉復原段,自然也就沒辦法drop掉復原段資料表空間。

由於是開發庫,根本就是處於非歸檔模式,也沒有什麼定時的備份,所以恢複資料庫也不用想了。

不過也好在是開發庫,那些事務丟了也根本無所謂。
於是,關閉資料庫,修改初始化參數檔案,添加隱含參數:
 _corrupted_rollback_segments=(rbs1,rbs2,rbs4,rbs5,rbs6,rbs7,rbs8,rbs9,rbs10)

全部標誌為corrupted的,然後啟動資料庫到mount狀態
drop掉file#=22的資料檔案
然後recover database;alter database open;

資料庫開啟以後,再次檢查v$rollname視圖,發現只有SYSTEM資料表空間中的復原段存在了,OK,再去dba_rollback_segs視圖檢查狀態,發現除了SYSTEM復原段其它的都處於need recover狀態,好,沒錯。開始刪除。

直接drop掉所有的復原段,drop掉復原段資料表空間,然後建立新的資料表空間,建立新的復原段,將所有復原段online,中間出了個小插曲,後面提到。

最後,正常關閉資料庫,修改init參數,將_corrupted_rollback_segments這行注釋掉,最後正常啟動資料庫。隨便找幾張表,作幾個insert測試了一下,沒有問題,OK,修複完成。

小插曲:建立新的復原段時出了一個問題,耽誤了一段時間,因為是8i的庫,system資料表空間是DMT的,所以復原段資料表空間也必須是DMT的,開始按照習慣建立了一個LMT的資料表空間,然後建立復原段的時候總是報錯,說非系統復原段無法使用SYSTEM資料表空間,想了好一陣,才想起DMT和LMT的這回事兒,然後drop掉建立的LMT資料表空間,建立了一個DMT的資料表空間,再重新建立復原段,沒有問題了。



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。