Oracle的RMAN總結繼續,具體實踐開始

louloueva發表於2009-01-14

接著昨天RMAN的進度,今天開始接觸一些備份恢復命令的操作練習

RMAN可以備份的資料庫相關檔案包括
資料檔案,控制檔案,伺服器引數檔案,歸檔日誌
還可以備份經由RMAN建立Oracle備份,比如副本拷貝,備份集

無法通過RMAN備份的檔案包括
網路配置檔案(tns、監聽等),密碼檔案,Oracle軟體本身檔案
以及外部表依賴的非Oracle資料檔案
這些檔案需要利用其它手段(如系統拷貝)進行備份

RMAN備份出的檔案有兩種形式
副本拷貝,在RMAN中進行檔案原樣拷貝
此方式於系統拷貝類似,但有記錄備份的資訊,統一定義檔名等額外功能

備份集,將資料庫相關檔案集合為一個或多個備份片檔案
要注意,備份歸檔日誌要獨立於備份其它資料庫檔案
兩者不能包含於同一備份集中
RMAN會將完全成功的備份集資訊記錄下來
含多備份片的備份集不能用單一備份片來進行恢復操作
RMAN進行備份集備份時,可以跳過資料檔案中未使用的資料塊
達到減少備份消耗時間和備份集大小的目的
另外,RMAN還可利用壓縮演算法對備份內容進行壓縮

對於資料檔案的備份,RMAN還可分別進行全備份和增量備份
全備份沒有什麼可說的
增量備份是備份自一個具體時間點(通常為上一次增量備份的時間)之後改變的資料塊
對於有些帶有nologging引數的資料庫物件
它們的改變可能沒有記錄在redo log中,這樣歸檔日誌將不會包含它們的改變
但增量備份可以捕獲到這些資料庫物件的改變並進行備份

先來看最簡單的全資料庫備份操作
RMAN提示符下,BACKUP DATABASE;
這種方式會生成資料庫的備份集,存放位置和資料庫一些引數有關
因為個人的test資料庫使用了閃回區,所以預設會存放在那裡
並由RMAN自動分配一個TAG標記號
但自己的閃回相關設定引數(大小)不足矣存放生成的備份集
所以最後生成完被強制回收了,成為一個殘缺、無效的備份集
沒關係,實踐操作就按著這個發展走~
用下面命令可以檢視當前target資料庫備份資訊
list backup;
list(很多命令都如此)可以檢視很多RMAN物件
比如copy(副本拷貝),archivelog(歸檔日誌)等
實踐過程中可能不會將各個方面都練習一遍,儘量多弄些吧~
因為個人開始進入RMAN的時候,沒有使用catalog
所以RMAN會使用target的控制檔案來顯示、記錄備份資訊(備份時有提示)
通過list命令檢視到剛才生成的備份集
TAG為TAG20090114T114222
這裡可以直接通過delete命令指定刪除此備份集
delete backup tag='TAG20090114T114222';
RMAN會尋找符合條件的物件,並提示是否要刪除(yes or no)

繼續做試驗,剛剛由backup生成了備份集
再來看看副本拷貝,這次備份的物件是歸檔日誌
並且同時加上備份路徑和檔名格式的設定
backup as copy archivelog sequence 28
format='/home/oracle/dumptest/arc_test_%U';
as copy是將備份型別定為副本開北
archinvlog是備份歸檔日誌
sequence=28是通過list命令檢視到的要備份的歸檔日誌序號
format是定義路徑(/home/oracle/dumptest/)
和檔名(arc_test_%U,arc_test_為固定字串,關於%U昨天做過相關總結)
這裡要注意,使用者要具有定義的路徑的寫許可權
dumptest是個人在之前總結資料泵的時候建立的directory物件,並賦過許可權
如果此處用了沒有許可權的目錄,備份將會失敗
ORA-27037: unable to obtain file status
Linux Error: 13: Permission denied

繼續以這些備份進行其它實踐,來看看驗證和清除
list archivelog all;檢視全部歸檔日誌
剛才as copy的副本拷貝就包含在此列表中
(備份集資訊用list backup檢視)
通過系統命令刪剛剛那個副本
這時list archivelog all;的資訊還是一樣
但實際上有一個是無效的,需要做適當處理
先使用crosscheck命令來進行驗證
crosscheck archivelog all;
其中一個歸檔日誌驗證會失敗
validation failed for archived log
archive log filename='檔名' recid=13 stamp=676126413
在使用crosscheck命令後
可以用list expired archivelog all;檢視都有哪些無效、過期歸檔日誌
而刪除的方法可以是剛才那種指定某個條件比如指定key為10的
delete archivelog 10;
或者可以刪除所有過期歸檔日誌
delete expired archinvelog all;

嗯,先練習這些,該休息休息,補充能量去了 ^_^

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/556359/viewspace-539604/,如需轉載,請註明出處,否則將追究法律責任。

相關文章