您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)基于rman的恢復(fù)操作有哪些呢,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
針對(duì)RMAN進(jìn)行的備份,下面從幾個(gè)方面利用RMAN進(jìn)行一些恢復(fù)操作。
恢復(fù)
1.1進(jìn)入rman命令行
rman target / |
1.2開(kāi)始備份
backup database format=’ /oracle/u01/app/oracle/backup/%U’; |
1.3一致性停止數(shù)據(jù)庫(kù)
shutdown immediate; |
1.4 刪除所有的數(shù)據(jù)文件
rm –rf /oracle/u01/app/oracle/oradata/orcl/*.dbf |
開(kāi)始恢復(fù):
1.5 利用rman啟動(dòng)數(shù)據(jù)庫(kù)到mount狀態(tài)
RMAN> startup mount; |
1.6 數(shù)據(jù)庫(kù)修復(fù)
RMAN> restore database; |
1.7 數(shù)據(jù)庫(kù)恢復(fù)
RMAN> recover database; |
可以添加其他參數(shù):
recover database delete archivelog;用于刪除在恢復(fù)過(guò)程中產(chǎn)生的歸檔日志文件
recover database skip tablespace temp;指定再恢復(fù)過(guò)程中跳過(guò)臨時(shí)表空間,默認(rèn)是不恢 復(fù)臨時(shí)表空間的。
recover database delete archivelog maxsize 100m;用于指定再恢復(fù)過(guò)程中限制自動(dòng)產(chǎn)生 的歸檔大小為100m,如果超過(guò)這個(gè)大小就會(huì)被刪除在循環(huán)繼續(xù)使用來(lái)恢復(fù)。
1.8 啟動(dòng)數(shù)據(jù)庫(kù)到open狀態(tài)
RMAN>alter database open; |
在有備份的基礎(chǔ)上我們先模擬破壞表空間,然后將其恢復(fù)
2.1 破壞users表空間
echo “” > /oracle/u01/app/oracle/oradata/orcl/users01.dbf |
2.2 切換日志
這時(shí)我們查詢(xún)表空間users中的表不一定報(bào)錯(cuò),因?yàn)樵趦?nèi)存中還有記錄,查詢(xún)到的
是內(nèi)存中的信息,需要我們手動(dòng)切換日志
SQL>alter system switch logfile; |
多執(zhí)行幾次,保證切換完成
2.3 檢查表空間是否可用
SQL>select * from test ERROR at line 1: ORA-00376:file 4 cannot be read at this time ORA-01110: data file 4: '/oracle/u01/app/oracle/oradata/orcl/users01.dbf' |
這時(shí)發(fā)現(xiàn)users表空間已經(jīng)不能使用
開(kāi)始恢復(fù)
2.4 將表空間offline
RMAN> SQL ‘a(chǎn)lter tablespace users offline’; |
2.5修復(fù)
RMAN>restore tablespace users; |
2.6 恢復(fù)
RMAN>recover tablespace users; |
2.7 將表空間online
RMAN>SQL ‘a(chǎn)lter tablespace users online’; |
2.8 檢驗(yàn)是否恢復(fù)
SQL>select * from test; |
可以查詢(xún)到數(shù)據(jù),表明表空間已經(jīng)恢復(fù)
3.1 將數(shù)據(jù)文件offline
RMAN> SQL ‘a(chǎn)lter database datafile 4 offline’; |
3.2修復(fù)
RMAN>restore datafile 4; |
3.3恢復(fù)
RMAN>recover datafile 4; |
3.4將數(shù)據(jù)文件online
RMAN>SQL ‘a(chǎn)lter database datafile 4 online’; |
RMAN> SQL ‘a(chǎn)lter database datafile 4 offline’; RMAN>run { RMAN>SQL ‘a(chǎn)lter database datafile 4 online’; |
4.1進(jìn)入rman命令行
SQL>rman target / |
4.2備份歸檔
RMAN>backup archivelog all delete input; |
4.3 檢查備份
RMAN>List backup of archivelog all;
BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 91 59.54M DISK 00:00:02 28-FEB-13 BP Key: 95 Status: AVAILABLE Compressed: NO Tag: TAG20130228T162106 Piece Name: /oracle/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_02_28/o1_mf_annnn_TAG20130228T162106_8ly4vmt4_.bkp
List of Archived Logs in backup set 91 Thrd Seq Low SCN Low Time Next SCN Next Time ---- ------- ---------- --------- ---------- --------- 1 311 5582914 27-FEB-13 5583269 27-FEB-13 1 312 5583269 27-FEB-13 5601615 28-FEB-13 1 313 5601615 28-FEB-13 5623126 28-FEB-13 1 314 5623126 28-FEB-13 5625133 28-FEB-13 1 315 5625133 28-FEB-13 5625135 28-FEB-13 1 316 5625135 28-FEB-13 5625138 28-FEB-13 1 317 5625138 28-FEB-13 5628235 28-FEB-13 1 318 5628235 28-FEB-13 5628281 28-FEB-13 |
通過(guò)查看,備份了從311-318的archivelog,并保存在備份集中,刪除了 /oracle/u01/app/oracle/路徑下的歸檔日志文件.
4.4 恢復(fù)歸檔
RMAN>restore archivelog sequence between 311 and 315; |
查看log_archive_dest_1路徑,發(fā)現(xiàn)已經(jīng)恢復(fù)出311-315的歸檔文件
4.4指定歸檔恢復(fù)路徑
通過(guò)在run腳本中來(lái)制定恢復(fù)的路徑
RMAN>run { set archivelog destination to ‘’; restore archivelog sequence between 311 and 315; set archivelog destination to ‘’; restore archivelog sequence between 316 and 317; } |
可以指定多個(gè)路徑。
5.1 開(kāi)啟控制文件自動(dòng)備份
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON; |
5.2備份控制文件
RMAN>backup current controlfile; |
5.3 設(shè)置DBID
沒(méi)有了控制文件,數(shù)據(jù)庫(kù)只能啟動(dòng)到nomount狀態(tài),啟動(dòng)之前需要設(shè)置DBID
RMAN>set dbid=1324770912 |
怎樣獲取DBID呢:
a) 創(chuàng)建自動(dòng)備份時(shí)未改名的備份文件包含;
b) 用rman連接時(shí)
c) Rman備份日志
d) 數(shù)據(jù)庫(kù)v$database視圖
5.4 恢復(fù)控制文件
RMAN> restore controlfile from autobackup; |
如果沒(méi)有指定路徑會(huì)恢復(fù)到參數(shù)文件control_files的路徑下
指定路徑:
RMAN> restore controlfile to ‘/home/oracle/control01.ctl’ from autobackup; |
5.5 找不到恢復(fù)路徑的解決辦法
在自動(dòng)備份控制文件前改過(guò)備份路徑,比如改到/oracle/u01/app/oracle/backup
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oracle/u01/app/oracle/backup/%F'; |
備份表空間
RMAN> backup tablespace users; |
因?yàn)殚_(kāi)啟了自動(dòng)備份控制文件,備份表空間也會(huì)備份控制文件,查詢(xún)
RMAN>list backup of controlfile; |
這時(shí)提示有控制文件的備份。
這時(shí)記錄dbid=1324770912
SQL>shutdown immediate; SQL>startup nomount SQL>rman target / RMAN>set dbid=1324770912 RMAN>restore controlfile from autobackup;
提示報(bào)錯(cuò): Starting restore at 28-FEB-13 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: sid=540 devtype=DISK
recovery area destination: /oracle/u01/app/oracle/flash_recovery_area database name (or database unique name) used for search: ORCL channel ORA_DISK_1: no autobackups found in the recovery area channel ORA_DISK_1: looking for autobackup on day: 20130228 channel ORA_DISK_1: looking for autobackup on day: 20130227 channel ORA_DISK_1: looking for autobackup on day: 20130226 channel ORA_DISK_1: looking for autobackup on day: 20130225 channel ORA_DISK_1: looking for autobackup on day: 20130224 channel ORA_DISK_1: looking for autobackup on day: 20130223 channel ORA_DISK_1: looking for autobackup on day: 20130222 channel ORA_DISK_1: no autobackup in 7 days found RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 02/28/2013 17:12:17 RMAN-06172: no autobackup found or specified handle is not a valid copy or piece |
因?yàn)椋涸谀J(rèn)路徑下找不到自動(dòng)備份的控制文件進(jìn)一步產(chǎn)rman參數(shù)
RMAN>show all; |
發(fā)現(xiàn)自動(dòng)備份控制文件的路徑并不是/oracle/u01/app/oracle/backup,而是默認(rèn)路徑
針對(duì)windows下默認(rèn)路徑為:$ORACLE_HOME/database
而linux系統(tǒng)下默認(rèn)路徑為:$ORACLE_HOME/dbs
那么為什么在我們之前設(shè)置了rman參數(shù),這里又會(huì)改變呢,因?yàn)槲覀兝玫? configure設(shè)置的參數(shù),這個(gè)改變是保存在控制文件中的,所以會(huì)找不到路徑。
針對(duì)這種情況有兩種方法:
a) 將備份的文件拷貝到所需要默認(rèn)的路徑下:$ORACLE_HOME/dbs
b) 重新設(shè)置自動(dòng)備份控制文件路徑
set CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oracle/u01/app/oracle/backup/%F'; |
這里為什么采用set來(lái)設(shè)置呢,因?yàn)楝F(xiàn)在數(shù)據(jù)庫(kù)是nomount狀態(tài),不能使用 configure來(lái)設(shè)置。
5.6 如果數(shù)據(jù)庫(kù)是非歸檔數(shù)據(jù)庫(kù)
修改自動(dòng)備份控制文件路徑時(shí)也不要使用configure來(lái)執(zhí)行,因?yàn)榇嗣钍怯谰蒙?,默認(rèn)是保存到控制文件的,這樣導(dǎo)致在恢復(fù)時(shí)找不到控制文件,使用set命令來(lái)設(shè)置修改自動(dòng)備份控制文件路徑。
從備份集中恢復(fù)
5.7 通過(guò)備份集中的備份恢復(fù)控制文件
需要設(shè)置dbid
啟動(dòng)數(shù)據(jù)庫(kù)到nomount狀態(tài)
恢復(fù)控制文件
restore controlfile from '/oracle/u01/app/oracle/backup/c-1324770912-20130301-08'; |
這樣即使更改過(guò)默認(rèn)參數(shù),只要指定備份集正確就可以恢復(fù)。
注意:
再恢復(fù)控制文件后啟動(dòng)數(shù)據(jù)庫(kù)步驟:
a) 啟動(dòng)數(shù)據(jù)庫(kù)到mount
SQL>alter database mount; |
b) 恢復(fù)數(shù)據(jù)庫(kù)
SQL>recover database using backup controlfile;
auto Additional information: 3 |
在執(zhí)行auto后,會(huì)自動(dòng)應(yīng)用歸檔,但是當(dāng)前日志文件還沒(méi)有歸檔,所以需要指定redo.log來(lái)應(yīng)用剩下的日志從而恢復(fù)數(shù)據(jù)庫(kù)
SQL>recover database using backup controlfile;
/oracle/u01/app/oracle/oradata/orcl/redo01.log Media recovery complete.
|
提示:Media recovery complete.恢復(fù)完成
c) 重做日志文件
SQL>alter database open resetlogs; |
參數(shù)文件在備份的時(shí)候即使不手工備份也會(huì)自動(dòng)完成備份,一般不手動(dòng)備份。 恢復(fù)類(lèi)似于控制文件的恢復(fù). 6.1 利用自動(dòng)備份恢復(fù) a) 設(shè)置dbid b) 啟動(dòng)到nomount狀態(tài) c) 恢復(fù) RMAN>restore spfile from autobackup;6.2 指定恢復(fù)文件 也可以通過(guò)手工指定的備份的控制文件進(jìn)行恢復(fù) RMAN>restore spfile from ‘/oracle/u01/app/oracle/backup/ c-1324770912-20130301-0a’;6.3 恢復(fù)到制定目標(biāo)地址 RMAN>restore spfile to ‘/home/oracle/spfiletmp.ora’ from ‘/oracle/u01/app/oracle/backup/ c-1324770912-20130301-0a’;
|
看完上述內(nèi)容,你們對(duì)基于rman的恢復(fù)操作有哪些呢有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。