天天看點

Oracle 資料庫災難性環境下恢複執行個體

一、版本和資料庫檔案資訊

二、備份資料庫

注意:備份資料庫時如果配置了 configure exclude fortablespace tbsname 的表空間是不會進行備份的,恢複表空間備份configure exclude for tablespacetbsname clear;如果沒有設定自動備份控制檔案和參數檔案,要在備份腳本最後手動添加備份控制檔案腳本;設定自動備份控制檔案和參數檔案:

控制檔案名格式必須包含%f,%f的格式為:c-iiiiiiiiii-yyyymmdd-qq,iiiiiiiiii(10位)代表dbid發生災難時可以通過它知道資料庫id,yyyymmdd代表自動備份時的timestamp,qq代表是十六進制的序列号,起始值為:00,最大值為:ff。開始備份資料

通過備份日志可以知道哪些資料檔案被備份,哪些沒有被備份或沒有備份成功,比如:發現較多資料塊損壞、表空間被排除備份(exclude)、表空間被skip;關注這些資訊非常重要,因為一旦災難發生,它意味着你的資料庫恢複成功率,也有助于對備份腳本的優化和調整。

三、驗證資料庫可恢複性

驗證可恢複性可以發現一些忽略的問題,及時處理;

四、資料庫恢複

恢複參數檔案和控制檔案

資料庫啟動時會先查找spfile,然後在找spfile.ora,再找檔案initpfile,如果這些檔案都沒有找到報錯并停止啟動;so 先建立一個基本的init pfile;

如果你的資料塊大小為非8kb,你又想在恢複控制檔案後完成其它操作,如mount控制檔案,則你必須在init 檔案中指定資料塊大小;

檢視備份檔案和确定可恢複的最大歸檔日志序列

注:如果目錄名發生改變或檔案發生位置移動,先使用 catalog start with '/dir' 将檔案catalog;

從上面的資訊中可以看出最大可恢複到的日志序列為20,恢複時設定until sequence 21,資料庫即可應用所有的歸檔日志;

使用resetlogs 方式打開資料庫

五、總結

任何時候資料庫的還原和恢複因環境和錯誤的不一而不同,認真有效的閱讀文檔,了解工作原理,然後在加上重複的實驗方能起到良好的效果,實驗本身是動手實踐的步驟,但同時也是理論實踐結合的強有效方式。

<b>本文來自雲栖社群合作夥伴“dbgeek”</b>