公務(wù)員期刊網(wǎng) 論文中心 正文

RMAN的數(shù)據(jù)庫(kù)恢復(fù)研究

前言:想要寫(xiě)出一篇引人入勝的文章?我們特意為您整理了RMAN的數(shù)據(jù)庫(kù)恢復(fù)研究范文,希望能給你帶來(lái)靈感和參考,敬請(qǐng)閱讀。

RMAN的數(shù)據(jù)庫(kù)恢復(fù)研究

如果所有數(shù)據(jù)文件都丟失了,可以使用RESTOREDAT-ABASE命令轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件,再使用RECOVERDATA-BASE命令恢復(fù)數(shù)據(jù)庫(kù),要求數(shù)據(jù)庫(kù)必須處于MOUNT狀態(tài)。注意:對(duì)于數(shù)據(jù)庫(kù)中存在只讀數(shù)據(jù)文件的情況,如果該數(shù)據(jù)文件是在有效備份之前把它設(shè)置為只讀的,rman會(huì)跳過(guò)該只讀數(shù)據(jù)文件的恢復(fù),如果希望恢復(fù)該只讀數(shù)據(jù)文件可以使用RESTOREDATABASECHECKREADONLY命令。如果某個(gè)表空間的數(shù)據(jù)文件出現(xiàn)介質(zhì)失敗,可以先使用SQL語(yǔ)句ALTERTABLESPACE…OFFLINEIMMEDIATE脫機(jī)表空間,接著使用RESTORETABLESPACE命令轉(zhuǎn)儲(chǔ)表空間的所有數(shù)據(jù)文件,再使用RECOVERTABLESPACE命令應(yīng)用日志,最后使用SQL語(yǔ)句ALTERTABLESPACE…ONLINE使表空間聯(lián)機(jī),要求數(shù)據(jù)庫(kù)必須處于OPEN狀態(tài)。

SYSTEM表空間的數(shù)據(jù)文件只能在數(shù)據(jù)庫(kù)MOUNT狀態(tài)下恢復(fù),其他數(shù)據(jù)文件既可以在數(shù)據(jù)庫(kù)MOUNT狀態(tài)下恢復(fù),也可以在數(shù)據(jù)庫(kù)OPEN狀態(tài)下恢復(fù)。如果某個(gè)數(shù)據(jù)文件出現(xiàn)介質(zhì)失敗,那么在裝載了數(shù)據(jù)庫(kù)之后,先使用RESTOREDATAFILE命令轉(zhuǎn)儲(chǔ)該數(shù)據(jù)文件,再使用RECOVERDATAFILE命令應(yīng)用日志,最后使用SQL語(yǔ)句ALTERDATABASEOPEN打開(kāi)數(shù)據(jù)庫(kù)。數(shù)據(jù)塊是恢復(fù)的最小單元,通過(guò)數(shù)據(jù)塊介質(zhì)恢復(fù)可以減少恢復(fù)時(shí)間,而且數(shù)據(jù)文件可以在線。要恢復(fù)的壞塊信息可以從報(bào)警與跟蹤文件、表與索引的分析、dbverify工具或第三方介質(zhì)管理工具以及具體的查詢(xún)語(yǔ)句中獲得。產(chǎn)生數(shù)據(jù)塊損壞的原因一般是隨機(jī)的IO錯(cuò)誤或者是內(nèi)存的塊錯(cuò)誤。如果絕對(duì)文件號(hào)為6的數(shù)據(jù)文件中塊號(hào)是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ù)庫(kù)出現(xiàn)介質(zhì)失敗或邏輯失敗時(shí),使用RESTORE命令轉(zhuǎn)儲(chǔ)備份,并使用RECOVER命令將數(shù)據(jù)庫(kù)恢復(fù)到備份點(diǎn)與失敗點(diǎn)之間某個(gè)時(shí)刻的狀態(tài)。注意不完全恢復(fù)只能在數(shù)據(jù)庫(kù)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ù)庫(kù),再使用SETUNTILTIME命令指定要恢復(fù)到的時(shí)間點(diǎn),使用RESTOREDATABASE轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件,使用RE-COVERDATABASE命令恢復(fù)數(shù)據(jù)庫(kù),最后使用SQL語(yǔ)句AL-TERDATABASEOPENRESETLOGS打開(kāi)數(shù)據(jù)庫(kù)。

2基于SCN恢復(fù)。當(dāng)使用RMAN執(zhí)行基于SCN的不完全恢復(fù)時(shí),在裝載數(shù)據(jù)庫(kù)后,先使用SETUNTILSCN命令指定要恢復(fù)到的SCN點(diǎn),再使用RESTOREDATABASE轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件,使用RECOVERDATABASE命令恢復(fù)數(shù)據(jù)庫(kù),最后使用SQL語(yǔ)句ALTERDATABASEOPENRESETLOGS打開(kāi)數(shù)據(jù)庫(kù)。4.3基于日志序列號(hào)恢復(fù)當(dāng)使用RMAN執(zhí)行基于日志序列號(hào)的不完全恢復(fù)時(shí),在裝載數(shù)據(jù)庫(kù)后,先使用SETUNTILSEQUENCE…THREAD命令指定要恢復(fù)到的日志序列號(hào),接著使用RESTOREDATA-BASE轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件,再使用RECOVERDATABASE命令恢復(fù)數(shù)據(jù)庫(kù),最后使用SQL語(yǔ)句ALTERDATABASEOPENRESETLOGS打開(kāi)數(shù)據(jù)庫(kù)。

恢復(fù)控制文件

還原一個(gè)備份的控制文件后,需要注意以下事項(xiàng):(1)運(yùn)行RECOVERDATABASE命令恢復(fù)數(shù)據(jù)庫(kù),然后用RESETLOGS選項(xiàng)打開(kāi)數(shù)據(jù)庫(kù);(2)在打開(kāi)數(shù)據(jù)庫(kù)后為本地管理方式的臨時(shí)表空間新增臨時(shí)文件。如果沒(méi)有使用恢復(fù)目錄,RMAN只能在數(shù)據(jù)庫(kù)NO-MOUNT狀態(tài)下,從備份中進(jìn)行控制文件的恢復(fù)。

1從自動(dòng)備份中恢復(fù)控制文件。在NOMOUNT數(shù)據(jù)庫(kù)后,先使用SETDBID命令設(shè)置數(shù)據(jù)庫(kù)的ID編號(hào),接著使用RESTORECONTROLFILEFROMAUTOBACKUP命令還原控制文件。

2從包含控制文件的備份文件中恢復(fù)控制文件。在NOMOUNT數(shù)據(jù)庫(kù)后,先使用SETDBID命令設(shè)置數(shù)據(jù)庫(kù)的ID編號(hào),接著使用RESTORECONTROLFILEFROM'media_handle'命令還原控制文件。

結(jié)束語(yǔ)

本文對(duì)如何使用RMAN進(jìn)行Oracle數(shù)據(jù)庫(kù)的還原與恢復(fù)作了較詳盡的闡述,為需要使用RMAN恢復(fù)Oracle數(shù)據(jù)庫(kù)的用戶(hù)提供了一些使用方法,使之能盡可能的挽回由系統(tǒng)突發(fā)事故所帶來(lái)的數(shù)據(jù)損失,保障企業(yè)應(yīng)用系統(tǒng)的正常運(yùn)行。(本文作者:朱偉 單位:淮北礦業(yè)集團(tuán)通訊計(jì)算機(jī)處)