前言:想要寫出一篇引人入勝的文章?我們特意為您整理了RMAN的數(shù)據(jù)庫恢復(fù)研究范文,希望能給你帶來靈感和參考,敬請閱讀。
如果所有數(shù)據(jù)文件都丟失了,可以使用RESTOREDAT-ABASE命令轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件,再使用RECOVERDATA-BASE命令恢復(fù)數(shù)據(jù)庫,要求數(shù)據(jù)庫必須處于MOUNT狀態(tài)。注意:對于數(shù)據(jù)庫中存在只讀數(shù)據(jù)文件的情況,如果該數(shù)據(jù)文件是在有效備份之前把它設(shè)置為只讀的,rman會(huì)跳過該只讀數(shù)據(jù)文件的恢復(fù),如果希望恢復(fù)該只讀數(shù)據(jù)文件可以使用RESTOREDATABASECHECKREADONLY命令。如果某個(gè)表空間的數(shù)據(jù)文件出現(xiàn)介質(zhì)失敗,可以先使用SQL語句ALTERTABLESPACE…OFFLINEIMMEDIATE脫機(jī)表空間,接著使用RESTORETABLESPACE命令轉(zhuǎn)儲(chǔ)表空間的所有數(shù)據(jù)文件,再使用RECOVERTABLESPACE命令應(yīng)用日志,最后使用SQL語句ALTERTABLESPACE…ONLINE使表空間聯(lián)機(jī),要求數(shù)據(jù)庫必須處于OPEN狀態(tài)。
SYSTEM表空間的數(shù)據(jù)文件只能在數(shù)據(jù)庫MOUNT狀態(tài)下恢復(fù),其他數(shù)據(jù)文件既可以在數(shù)據(jù)庫MOUNT狀態(tài)下恢復(fù),也可以在數(shù)據(jù)庫OPEN狀態(tài)下恢復(fù)。如果某個(gè)數(shù)據(jù)文件出現(xiàn)介質(zhì)失敗,那么在裝載了數(shù)據(jù)庫之后,先使用RESTOREDATAFILE命令轉(zhuǎn)儲(chǔ)該數(shù)據(jù)文件,再使用RECOVERDATAFILE命令應(yīng)用日志,最后使用SQL語句ALTERDATABASEOPEN打開數(shù)據(jù)庫。數(shù)據(jù)塊是恢復(fù)的最小單元,通過數(shù)據(jù)塊介質(zhì)恢復(fù)可以減少恢復(fù)時(shí)間,而且數(shù)據(jù)文件可以在線。要恢復(fù)的壞塊信息可以從報(bào)警與跟蹤文件、表與索引的分析、dbverify工具或第三方介質(zhì)管理工具以及具體的查詢語句中獲得。產(chǎn)生數(shù)據(jù)塊損壞的原因一般是隨機(jī)的IO錯(cuò)誤或者是內(nèi)存的塊錯(cuò)誤。如果絕對文件號為6的數(shù)據(jù)文件中塊號是3的數(shù)據(jù)塊損壞了,可以使用如下命令恢復(fù)損壞的數(shù)據(jù)塊,如下:RMAN>BLOCKRECOVERDATAFILE6BLOCK3;損壞的數(shù)據(jù)塊的信息保存在視圖V$DATABASE_BLOCK_CORRUPTION中,用如下命令可以恢復(fù)該視圖中列出的壞塊,如下:RMAN>BLOCKRECOVERCORRUPTIONLISTRE-STOREUNTILTIME‘SYSDATE-7’。
RMAN不完全恢復(fù)
RMAN不完全恢復(fù)是指當(dāng)數(shù)據(jù)庫出現(xiàn)介質(zhì)失敗或邏輯失敗時(shí),使用RESTORE命令轉(zhuǎn)儲(chǔ)備份,并使用RECOVER命令將數(shù)據(jù)庫恢復(fù)到備份點(diǎn)與失敗點(diǎn)之間某個(gè)時(shí)刻的狀態(tài)。注意不完全恢復(fù)只能在數(shù)據(jù)庫MOUNT狀態(tài)下進(jìn)行。
1基于時(shí)間恢復(fù)。當(dāng)執(zhí)行基于時(shí)間點(diǎn)的不完全恢復(fù)時(shí),首先要在命令行設(shè)置環(huán)境變量NLS_DATE_FORMAT。在進(jìn)入RMAN之后,先裝載數(shù)據(jù)庫,再使用SETUNTILTIME命令指定要恢復(fù)到的時(shí)間點(diǎn),使用RESTOREDATABASE轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件,使用RE-COVERDATABASE命令恢復(fù)數(shù)據(jù)庫,最后使用SQL語句AL-TERDATABASEOPENRESETLOGS打開數(shù)據(jù)庫。
2基于SCN恢復(fù)。當(dāng)使用RMAN執(zhí)行基于SCN的不完全恢復(fù)時(shí),在裝載數(shù)據(jù)庫后,先使用SETUNTILSCN命令指定要恢復(fù)到的SCN點(diǎn),再使用RESTOREDATABASE轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件,使用RECOVERDATABASE命令恢復(fù)數(shù)據(jù)庫,最后使用SQL語句ALTERDATABASEOPENRESETLOGS打開數(shù)據(jù)庫。4.3基于日志序列號恢復(fù)當(dāng)使用RMAN執(zhí)行基于日志序列號的不完全恢復(fù)時(shí),在裝載數(shù)據(jù)庫后,先使用SETUNTILSEQUENCE…THREAD命令指定要恢復(fù)到的日志序列號,接著使用RESTOREDATA-BASE轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件,再使用RECOVERDATABASE命令恢復(fù)數(shù)據(jù)庫,最后使用SQL語句ALTERDATABASEOPENRESETLOGS打開數(shù)據(jù)庫。
恢復(fù)控制文件
還原一個(gè)備份的控制文件后,需要注意以下事項(xiàng):(1)運(yùn)行RECOVERDATABASE命令恢復(fù)數(shù)據(jù)庫,然后用RESETLOGS選項(xiàng)打開數(shù)據(jù)庫;(2)在打開數(shù)據(jù)庫后為本地管理方式的臨時(shí)表空間新增臨時(shí)文件。如果沒有使用恢復(fù)目錄,RMAN只能在數(shù)據(jù)庫NO-MOUNT狀態(tài)下,從備份中進(jìn)行控制文件的恢復(fù)。
1從自動(dòng)備份中恢復(fù)控制文件。在NOMOUNT數(shù)據(jù)庫后,先使用SETDBID命令設(shè)置數(shù)據(jù)庫的ID編號,接著使用RESTORECONTROLFILEFROMAUTOBACKUP命令還原控制文件。
2從包含控制文件的備份文件中恢復(fù)控制文件。在NOMOUNT數(shù)據(jù)庫后,先使用SETDBID命令設(shè)置數(shù)據(jù)庫的ID編號,接著使用RESTORECONTROLFILEFROM'media_handle'命令還原控制文件。
結(jié)束語
本文對如何使用RMAN進(jìn)行Oracle數(shù)據(jù)庫的還原與恢復(fù)作了較詳盡的闡述,為需要使用RMAN恢復(fù)Oracle數(shù)據(jù)庫的用戶提供了一些使用方法,使之能盡可能的挽回由系統(tǒng)突發(fā)事故所帶來的數(shù)據(jù)損失,保障企業(yè)應(yīng)用系統(tǒng)的正常運(yùn)行。(本文作者:朱偉 單位:淮北礦業(yè)集團(tuán)通訊計(jì)算機(jī)處)