我對(duì)Oracle RMAN恢復(fù)的理解.doc_第1頁(yè)
我對(duì)Oracle RMAN恢復(fù)的理解.doc_第2頁(yè)
我對(duì)Oracle RMAN恢復(fù)的理解.doc_第3頁(yè)
我對(duì)Oracle RMAN恢復(fù)的理解.doc_第4頁(yè)
我對(duì)Oracle RMAN恢復(fù)的理解.doc_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

我對(duì)Oracle RMAN恢復(fù)的理解零散思路:可能遇到的恢復(fù)情況:因?yàn)閿?shù)據(jù)庫(kù)無(wú)法啟動(dòng)或正常使用需要恢復(fù);因?yàn)閿?shù)據(jù)誤刪除或表空間、表的誤刪除等需要將數(shù)據(jù)庫(kù)或其中某表空間、表或表中數(shù)據(jù)恢復(fù)到過(guò)去某時(shí)間點(diǎn);RMAN恢復(fù)原則:恢復(fù)不外乎就是恢復(fù)如下一些文件:數(shù)據(jù)文件(也有可能是表空間),控制文件,歸檔日志文件(見(jiàn)后面關(guān)于歸檔日志恢復(fù)部分),在線日志文件,初始化參數(shù)文件,全庫(kù)恢復(fù)需要在MOUNT狀態(tài)下,表空間或數(shù)據(jù)文件的恢復(fù)可以在OPEN狀態(tài)下進(jìn)行,控制文件歸檔日志文件在線日志文件初始化參數(shù)文件常用的恢復(fù)命令:/對(duì)數(shù)據(jù)庫(kù)進(jìn)行完全介質(zhì)恢復(fù)歸檔模式,控制文件、初始化參數(shù)文件、歸檔日志文件和重做日志文件都完好無(wú)損,其余數(shù)據(jù)文件全部丟失,可將數(shù)據(jù)庫(kù)恢復(fù)到崩潰前那一刻的狀態(tài):Rmanstartup mount;Rmanrestore database;Rmanrecover database delete archivelog;Rmanalter database open;?那以上情況下,非歸檔模式應(yīng)如何處理?這種情況下感覺(jué)應(yīng)該有幾種情況:首先非歸檔模式下的備份只可能是一致性備份,而且非歸檔模式下沒(méi)有歸檔日志,因此恢復(fù)時(shí)要考慮最近一次備份和數(shù)據(jù)庫(kù)崩潰期間的在線日志文件是否都還在,如果在則直接執(zhí)行restore和recover然后正常打開(kāi)數(shù)據(jù)庫(kù)即可,而如果在線日志文件已經(jīng)部分或全部丟失,則首先restore最近一次備份,然后執(zhí)行recover database until cancel命令,據(jù)說(shuō)此時(shí)該命令并不會(huì)執(zhí)行任何恢復(fù)操作,只是提示控制文件不再使用原有重做日志,最后以resetlogs方式打開(kāi)數(shù)據(jù)庫(kù)。在三思的書中,文字性提到了一種方法:首先恢復(fù)之前備份的控制文件,然后執(zhí)行restore和recover命令,最后以resetlogs方式打開(kāi)數(shù)據(jù)庫(kù)。感覺(jué)這種方式很有道理而前一種思路似乎有問(wèn)題:前一種思路中實(shí)際是用當(dāng)前的控制文件在進(jìn)行恢復(fù)操作,而當(dāng)前的控制文件很有可能有前次備份中所不具有的新加的數(shù)據(jù)文件,那么這樣在備份的時(shí)候是不是會(huì)出問(wèn)題呢? 以上都需要具體驗(yàn)證!/恢復(fù)表空間和數(shù)據(jù)文件mount或open狀態(tài)都可Tablespace:Rmansql alter tablespace tbs1 offline immediate;Rmanrestore tablespace tbs1;Rmanrecover tablespace tbs1;Rmansql alter tablespace tbs1 online;Datafile:Rmansql alter database datafile 9 offline;Rmanrestore datafile 9;Rmanrecover datafile 9;Rmansql alter datafile 9 online;或Rmanset newname for datafile 3 to f:newlocationsysaux01.dbf;Rmanrestore datafile 3;Rmanswitch datafile 3;Rmanrecover datafile 3;/恢復(fù)歸檔日志文件特別:三思告訴我們:“恢復(fù)歸檔文件也是使用restore命令,如果只是為了在恢復(fù)數(shù)據(jù)文件后應(yīng)用歸檔文件,那并不需要手動(dòng)歸檔文件進(jìn)行恢復(fù),RMAN會(huì)在recover的時(shí)候自動(dòng)對(duì)適當(dāng)?shù)臍w檔進(jìn)行恢復(fù)。單獨(dú)恢復(fù)歸檔文件一般是有特別的需求,如創(chuàng)建了Data Guard環(huán)境,Standy端丟失了部分歸檔文件,必須從Primary端重新獲取等等。”/恢復(fù)控制文件這里所說(shuō)的恢復(fù)是指僅恢復(fù)控制文件本身,應(yīng)該還有一種“基于控制文件的不完全恢復(fù)”,不知和這種情況是否相同(當(dāng)所有控制文件全部丟失或者誤刪除了表空間時(shí)(閃回?cái)?shù)據(jù)庫(kù)能辦到嗎?),需要執(zhí)行控制文件的恢復(fù))。其實(shí)本身是一種解決方案下的多種情況: 情景1:歸檔、有恢復(fù)目錄、控制文件全部丟失或部分?jǐn)?shù)據(jù)文件或表空間丟失情景2:歸檔、無(wú)恢復(fù)目錄、控制文件全部丟失或部分?jǐn)?shù)據(jù)文件或表空間丟失前景3:非歸檔、有恢復(fù)目錄、控制文件全部丟失或部分?jǐn)?shù)據(jù)文件或表空間丟失情景4:非歸檔、無(wú)恢復(fù)目錄、控制文件全部丟失或部分?jǐn)?shù)據(jù)文件或表空間丟失1、 從自動(dòng)備份中恢復(fù)Rmanset DBID=1415261003;Rmanstartup nomount;Rmanrestore controlfile from autobackup;Rmanalter database mount;(Rmanrestore controlfile to d:oraclenewctlfcontrolfile01.ctl from autobackup;恢復(fù)到指定位置)Rmanrecover database;Rmanalter database open resetlogs;2、 從備份集中恢復(fù)Rmanset DBID=1415261003;Rmanstartup nomount;Rmanrestore controlfile from d:backupc-1415261003-20110522-00;(Rmanrestore controlfile to d:oraclenewctlfcontrolfile01.ctl from autobackup;恢復(fù)到指定位置)Rmanalter database mount;Rmanrecover database;Rmanalter database open resetlogs;/恢復(fù)初始化參數(shù)文件(方法基本與控制文件的恢復(fù)相同)Rman set DBID=1415261003;Rmanstartup nomount;Rmanrestore spfile from autobackup;Rmanalter database mount;Rmanrecover database;/恢復(fù)聯(lián)機(jī)重做日志文件0、 查詢聯(lián)機(jī)日志狀態(tài)情況v$log中記錄聯(lián)機(jī)重做日志組的信息;v$logfile中記錄聯(lián)機(jī)重做日志組對(duì)應(yīng)的日志文件;SQLselect group#, thread#, sequence#, members, archived, status from v$log;SQLselect group#, member from v$logfile;1、 日志組中的某個(gè)日志成員損壞多元化重做日志的目的就是為了防止日志成員的介質(zhì)失敗。如果某個(gè)日志組的一個(gè)日志成員出現(xiàn)介質(zhì)失敗,那么數(shù)據(jù)庫(kù)仍然可以正常工作。首先查詢:SQLselect member from v$logfile where status=INVALID;然后使用alter database drop logfile member命令刪除該日志成員,注意,如果出現(xiàn)損壞的日志成員是當(dāng)前日志組的日志成員,那么該日志成員將不能被刪除,需要進(jìn)行手工的切換:SQLalter system switch logfile;SQLalter database drop logfile member c:orclredo01_2.log;在刪除了日志成員之后,需要為該日志組添加新的日志成員,注意新增加的日志成員狀態(tài)也為INVALID:SQLalter database add logfile member c:orclredo01_3.log to group 1;2、 丟失非當(dāng)前的聯(lián)機(jī)重做日志文件先查詢出丟失的聯(lián)機(jī)重做日志文件組及其包含的聯(lián)機(jī)重做日志文件然后修復(fù):SQLalter database clear logfile group 1;該命令重建該組重做日志文件即可。特別!在精通Oracle 10g備份與恢復(fù)一書中關(guān)于此部分的介紹分類更細(xì):(1)、在OPEN狀態(tài)下非活動(dòng)日志組的所有日志成員全部損壞出現(xiàn)此種情況,數(shù)據(jù)庫(kù)仍然正常工作,只是當(dāng)切換到該日志組時(shí),因?yàn)槠鋬?nèi)容不能被歸檔,所以后臺(tái)進(jìn)程LGWR會(huì)處于等待狀態(tài)。為了使得后臺(tái)進(jìn)程LGWR可以繼續(xù)工作,DBA應(yīng)該清楚該日志組(我理解此種情景是針對(duì)歸檔模式而言的,非歸檔模式?jīng)]得這種問(wèn)題):SQLalter database clear unarchived logfile group 1;(2)、在關(guān)閉狀態(tài)下非活動(dòng)日志組的所有日志成員全部損壞新增加新的日志組,刪除原有日志組,然后打開(kāi)數(shù)據(jù):SQLalter database add logfile (d:orclredo04_1.log, c:orclredo04_2.log) size 10M;SQLalter database drop logfile group 1;SQLalter database open;3、 丟失當(dāng)前的聯(lián)機(jī)重做日志文件此種情況下不能直接重建,而是應(yīng)該執(zhí)行不完全恢復(fù)需要修改一個(gè)隱藏的初始化參數(shù):SQLalter system set “_ALLOW_RESETLOGS_CORRUPTION”=TRUE SCOPE=SPFILE;該參數(shù)設(shè)為TRUE時(shí),Oracle在OPEN時(shí)會(huì)跳過(guò)一些一致性的檢查。特別!在精通Oracle 10g備份與恢復(fù)一書中關(guān)于此部分的介紹分類更細(xì):(1)、在OPEN狀態(tài)下當(dāng)前日志組的所有日志成員全部損壞當(dāng)數(shù)據(jù)庫(kù)處于OPEN狀態(tài)時(shí),如果當(dāng)前日志組的所有日志成員全部損壞,那么當(dāng)后臺(tái)進(jìn)程LGWR將事物寫入該日志組時(shí),實(shí)例會(huì)被自動(dòng)關(guān)閉,并報(bào)錯(cuò)。出現(xiàn)這種情況下,需要執(zhí)行不完全恢復(fù):RMANstartup mount;RMANrestore database;RMANrecover database until cancel;RMANalter database open resetlogs;(2)、在關(guān)閉狀態(tài)下當(dāng)前日志組的所有日志成員全部損壞當(dāng)在關(guān)閉狀態(tài)下當(dāng)前日志組出現(xiàn)損壞時(shí),因?yàn)閿?shù)據(jù)文件、控制文件都處于完全一致?tīng)顟B(tài),所以DBA只需要執(zhí)行基于CANCEL的不完全恢復(fù)即可:RMANstartup mount;RMANrecover database until cancel;RMANalter database open resetlogs;/RMAN不完全恢復(fù)0、 執(zhí)行不完全恢復(fù)后,因?yàn)橐詒esetlogs方式打開(kāi)數(shù)據(jù)庫(kù),而此時(shí)會(huì)重新建立重做日志,清空原有重做日志的內(nèi)容(同時(shí)歸檔日志也全部刪除了),而且過(guò)去的備份也不能直接使用了(但好像聽(tīng)說(shuō)從Oracle Database 10g開(kāi)始,Oracle提供了新的安全機(jī)制可以確保歸檔日志不會(huì)被覆蓋,從而使得在恢復(fù)數(shù)據(jù)庫(kù)時(shí)可以使用早期數(shù)據(jù)庫(kù)副本的備份),因此強(qiáng)烈建議讀者刪除早期所有的備份,并重新備份數(shù)據(jù)庫(kù):RMANrundelete noprompt backup;delete noprompt copy;backup database format=d:backup%d_%s.bak;sql alter system archive log current;1、 基于時(shí)間恢復(fù)基于時(shí)間點(diǎn)恢復(fù)是指當(dāng)出現(xiàn)用戶錯(cuò)誤(例如誤刪除表、誤截?cái)啾淼龋r(shí),先使用restore database命令轉(zhuǎn)儲(chǔ)所有數(shù)據(jù)文件備份,再使用recover database命令將數(shù)據(jù)庫(kù)恢復(fù)到用戶錯(cuò)誤點(diǎn)的狀態(tài),從而恢復(fù)用戶數(shù)據(jù)。(有時(shí)需要結(jié)合LogMiner來(lái)確定誤操作時(shí)間點(diǎn))RMANrunstartup force mount;set until time=2011-05-22 22:03:00;restore database;recover database;sql alter database open resetlogs;2、 基于SCN恢復(fù)RMANrunstartup force mount;set until scn=511927;restore database;recover database;sql alter database open resetlogs;3、 基于日志序列號(hào)恢復(fù)RMANrunstartup force mount;set until sequence=6;restore database;recover database;sql alter database open resetlogs;4、 基于備份控制文件恢復(fù)RMANstartup force nomount;RMANset dbid=123456;RMANrestore controlfile form autobackup;RMANalter database mount;RMANrunset until time=2011-05-22 22:39:00;restore database;recover database;sql alter database open resetlogs;/恢復(fù)訛誤的數(shù)據(jù)塊(block media recovery,簡(jiǎn)寫為BMR)當(dāng)我們?cè)L問(wèn)某個(gè)數(shù)據(jù)文件發(fā)現(xiàn)其出現(xiàn)數(shù)據(jù)塊訛誤時(shí),例如如下錯(cuò)誤消息:ORA-01578:ORACLE data block corrupted (file # 19, block # 44)ORA-01110:data file 19: d:oracleoradatadatamydb_maintbs_01.dbf如果沒(méi)有BMR,我們必須從一個(gè)備份中恢復(fù)這個(gè)數(shù)據(jù)文件,關(guān)鍵是在恢復(fù)過(guò)程中用戶不能使用該數(shù)據(jù)文件中的數(shù)據(jù),相反使用BMR只恢復(fù)訛誤的數(shù)據(jù)塊,這時(shí)需要使用blockrecover命令:blockrecover datafile 19 block 44;如果有必要,可以同時(shí)恢復(fù)多個(gè)數(shù)據(jù)文件中的多個(gè)數(shù)據(jù)塊:blockrecover datafile 19 block 44,66,127blockrecover datafile 19 block 44 datafile 22 block 203;/恢復(fù)到以前的Incarnation我們可能面臨到的一種情況是:需要使用上次執(zhí)行resetlogs命令打開(kāi)數(shù)據(jù)庫(kù)前生成的一個(gè)備份來(lái)還原數(shù)據(jù)庫(kù),或者可能需要還原到執(zhí)行上一個(gè)resetlogs命令之前的時(shí)間點(diǎn)。這種恢復(fù)在是否使用來(lái)恢復(fù)目錄時(shí)存在差別,原因很顯然:恢復(fù)目錄能夠永久(至少是長(zhǎng)時(shí)間)保存控制文件和備份信息,當(dāng)然也就包括來(lái)所記錄的各個(gè)版本的Incarnation;而僅使用控制文件時(shí),我們看到的控制文件肯定是當(dāng)前的版本,有可能稍早的備份或者Incarnation信息已經(jīng)被覆蓋,所以要恢復(fù)當(dāng)前控制文件中已經(jīng)沒(méi)有的Incarnation,則首先需要從備份中還原出包含相應(yīng)Incarnation的控制文件。前提假設(shè):并且最近使用resetlogs命令執(zhí)行過(guò)時(shí)間點(diǎn)恢復(fù)?,F(xiàn)在需要使用執(zhí)行resetlogs命令之前一個(gè)備份來(lái)恢復(fù)數(shù)據(jù)庫(kù)。1、 使用恢復(fù)目錄恢復(fù)前一個(gè)IncarnationRMANlist incarnation;List of Database IncarnationsDB Key Inc key DB Name DB ID CUR Reset SCN Reset Time- - - - - - - -1 2 RECOVER 2539725638 NO 763059 08-JUL-021 123 RECOVER 2539725638 YES 764905 09-JUL-02RMANstartup force nomount;RMANreset database to incarnation 2;database reset to incarnation 2 in recovery catalogRMANrestore controlfile;Finished restore at 10-JUL-02RMANalter database mount;database mountedRMANrestore database until scn 764904;Finished restore at 10-JUL-02RMAN recover database until scn 764904;starting media recoveryFinished restore at 10-JUL-02RMANalter database open resetlogs;new incarnation of database registerd in recovery catalogstarting full resync of recovery catalogfull resync completeRMANlist incarnation;List of Database IncarnationsDB Key Inc key DB Name DB ID CUR Reset SCN Reset Time- - - - - - - -1 2 RECOVER 2539725638 NO 763059 08-JUL-021 123 RECOVER 2539725638 NO 764905 09-JUL-021 245 RECOVER 2539725638 YES 764905 10-JUL-022、 不使用恢復(fù)目錄恢復(fù)前一個(gè)IncarnationRMANlist incarnation of database;List of Database IncarnationsDB Key Inc key DB Name DB ID STATUS Reset SCN Reset Time- - - - - - - - -1 1 RECOVER 2539725638 PARENT 1 30-AUG-052 2 RECOVER 2539725638 PARENT 534907 03-OCT-053 3 RECOVER 2539725638 PARENT 3586765 04-FEB-064 4 RECOVER 2539725638 PARENT 3599781 05-FEB-065 5 RECOVER 2539725638 PARENT 3715262 08-FEB-066 6 RECOVER 2539725638 CURRENT 4296046 20-FEB-06RMANshutdown immediate;RMANstartup mount;RMANreset database to incarnation 5;RMANrestore database until scn 4296041;RMANrecover database un

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論