記一次Oracle數(shù)據(jù)庫恢復
單位OA系統(tǒng)出現(xiàn)故障,通過排查是部署在云上應用服務器和數(shù)據(jù)庫服務器出現(xiàn)故障。聯(lián)系云和OA系統(tǒng)工程師到現(xiàn)場協(xié)助處理,通過云工程師處理順利恢復了應用服務器,但是數(shù)據(jù)庫服務器依然存在問題,云廠家工程師通過技術手段將數(shù)據(jù)庫服務器上的所有文件拷貝到一臺新的虛擬機。
所以重點就是恢復數(shù)據(jù)庫服務器上的Oracle數(shù)據(jù)庫
場景
1.數(shù)據(jù)庫服務器有一個7月16號的備份鏡像
2.數(shù)據(jù)庫oracle相關文件拷貝到一臺另外的虛擬機,oracle數(shù)據(jù)庫文件是否發(fā)生損壞未知
方案
1.通過從原數(shù)據(jù)庫拷貝出來的文件完成數(shù)據(jù)庫恢復
2.通過7月16號的備份鏡像完成數(shù)據(jù)庫還原,這樣會造成2個多月的數(shù)據(jù)丟失,因此這種方式是在方案1完全無法實現(xiàn)的時候的備選
實施思路
由于Oracle對于從文件直接還原的特殊性(版本號、數(shù)據(jù)庫sid、實例名、路徑、數(shù)據(jù)庫編碼要求完全一致)
1.通過將7月16號的鏡像還原到了一臺新的虛擬機進而保證了還原時各類參數(shù)的一致性,同時確認該還原的數(shù)據(jù)庫狀態(tài)正常
2.將還原數(shù)據(jù)庫的所有dbf文件和control文件備份
3.將原數(shù)據(jù)庫下?lián)p壞情況未知的dbf文件和control文件拷貝到已還原的oracle數(shù)據(jù)庫,需要確定文件權限為oracle:oinstall
4.啟動數(shù)據(jù)庫,順利啟動并mount,但是在open database時出錯,報ora-00314錯誤
5.通過檢查啟動日志,并結合
select group#,sequence#,archived,status from v$log;
這個sql語句查詢數(shù)據(jù)庫狀態(tài)發(fā)現(xiàn)是數(shù)據(jù)庫redo日志問題
6.重做redo日志,因為數(shù)據(jù)庫不是做的歸檔日志所以用的unarchived
alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 2;
alter database clear unarchived logfile group 3;
完成日志操作后執(zhí)行alter database open;數(shù)據(jù)庫順利啟動完成本次數(shù)據(jù)庫恢復