rman命令詳解(三)

張衝andy發表於2017-04-18
1. Report 命令
使用者判斷資料庫的當前可恢復狀態和提供資料庫備份的特定資訊
1.1 指定最近沒有備份的資料檔案
查詢3天內沒有備份過的表空間,可以用如下命令:
RMAN> report need backup days=3;
1.2 報告備份冗餘或恢復視窗
可以用report need backup redundancy 命令來確定為滿足備份冗餘策略而需要備份的資料檔案。
RMAN> report need backup redundancy =4;
RMAN> report need backup recovery window of 2 days;
1.3 報告資料檔案的不可用恢復操作
如果對於表空間中物件和組成這些表空間的資料檔案執行了某些不可恢復操作,那麼會導致在恢復的時候出現異常,我們可以用report檢視這些不可用的物件。
RMAN> report unrecoverable;
1.4 報告資料庫模式(Schema)
這裡的Schema指的是資料庫的物理結構,包括資料檔名,資料檔案號,為這些資料檔案指派的表空間,資料檔案的大小,以及資料檔案是否含有回滾段。 
RMAN> report schema;


2. Validate 
2.1 效驗所有的資料檔案和控制檔案,如果使用spfile 檔案,也會效驗。
RMAN> VALIDATE DATABASE;  (11g 新特性)
2.2 驗證某一個備份集
RMAN> validate backupset 8;
2.3 validate 某一個資料塊
RMAN> VALIDATE DATAFILE 1 BLOCK 10;


3. BACKUP ... VALIDATE
backup…validate 命令做如下的效驗:
(1) 檢查資料檔案是否存在物理或者邏輯的壞塊
(2) 檢查所有的資料檔案是否都存在,並且存在正確的位置。
當執行backup validate時,RMAN 會按照正常的備份來讀取所有的資料檔案。 但是RMAN 不會產生任何的backup sets 和 image copy。
當我們使用backup validate時,不能使用backupset,maxcorrupt,proxy引數。如果想要效驗某個指定的備份集,可以使用我們之前講的validate命令。 
3.1如果我們想要效驗所有的資料檔案和歸檔日誌,可以執行如下命令: ( 只效驗物理的損壞 )
RMAN>backup validate database archivelog all;
3.2 既效驗物理的損壞,又效驗邏輯的壞塊
(注意: 如果加上了archivelog all,就必須要有歸檔檔案存在,如果沒有歸檔檔案,會報如下錯誤:rman-20242、rman-03002 )
RMAN>backup validate check logical database archivelog all;  


4. List
4.1 檢視 backupset 的編號
RMAN> list backup summary;
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
36      B  0  A DISK        11-JUL-13       1       1       NO         ORA11GR2_LEVEL0
37      B  0  A DISK        11-JUL-13       1       1       NO         ORA11GR2_LEVEL0
39      B  A  A DISK        11-JUL-13       1       1       NO         ARC_BAK
43      B  F  A DISK        11-JUL-13       1       1       NO         TAG20130711T203435
KEY(關鍵字): 表示備份集序列號
TY(型別)和LV列表示列的備份型別:
B[Backup] 表示備份
F[Full] 表示完全備份
A[Archivelog]
0和1 表示增量備份[Incremental backup]
S 列說明備份的狀態: A 表示Available,X 表示Expired. 
Device Type:  說明備份的裝置是磁帶還是磁碟 
4.2 按備份型別列出備份
列出資料檔案備份,歸檔日誌備份,控制檔案和spfile檔案備份列出備份資訊。
RMAN> list backup by file;
RMAN> list backup of controlfile;
RMAN> list backup of spfile;
4.3 列出到期的備份
RMAN> list expired backup;
RMAN> list expired backup of archivelog all;
4.4 按表空間名和資料檔案號列出備份
RMAN> list backup of tablespace users;
RMAN> list backup of datafile 3;
4.5 列出歸檔日誌備份
4.5.1 檢視當前存在的歸檔日誌(並不意味著它們已經備份)
RMAN> list archivelog all;
4.5.2 列出歸檔日誌備份
RMAN> list backup of archivelog all;
4.5.2 列出備份中過期的歸檔
RMAN> list expired backup of archivelog all;
設定時間或日誌序列號來限制報告中顯示的內容,如:
RMAN> list expired backup of archivelog until sequence 3;
RMAN> list expired backup of archivelog until time "to_date('2013-4-1','yyyy-mm-dd')";
4.6 列出incarnation
RMAN> list incarnation;
DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1       1       ORCL     1388303183       PARENT  1          15-AUG-09
2       2       ORCL     1388303183       PARENT  945184     09-OCT-14
3       3       ORCL     1388303183       ORPHAN  2000932    11-DEC-14
。。。
7       7       ORCL     1388303183       CURRENT 3450137    12-MAR-15
Status 列:該列列出的是incarnation的狀態   (下面是幾個狀態值的含義)
Parent:表明對應物是非當前的incarnation
Current:當前的incarnation
ORPHAN:孤立的incarnation, 即在resetlogs命令之後進行恢復
重置SCN(Reset SCN)和重置時間(Reset Time):
說明建立資料庫incarnation的時間,這也是第一個條目的Reset SCN為1的原因。 該列對使用resetlogs命令進行恢復有用,並使得能較容易的恢復到前面的incarnation。
注意一點:
使用恢復目錄和不使用恢復目錄這裡的輸出在Inc Key 上有差異。


5. crosscheck
5.1檢查備份集和實際的檔案
備份集有兩種狀態:
A(Available,RMAN認為該項存在於備份介質上), 
X(Expired,備份存在於控制檔案或恢復目錄中,但是並沒有物理存在於備份介質上)
說明:當設定備份儲存策略後,一個備份過期,crosscheck之後標記為丟棄的備份狀態依舊為availabel。備份策略不會刪除過期的備份集,可以使用report obsolete命令檢視過期的備份,delete obsolete 命令刪除過期的備份。
5.2 交叉驗證歸檔日誌示例:
RMAN> crosscheck archivelog all;
補充:假如我們在oracle資料庫在遷移當中不小心丟失了一個歸檔檔案, 此時RMAN 會因為缺少歸檔日誌而不能完成備份
解決方法,執行下面2條命令即可:    (原理是datafiles都存在,而歸檔都是記錄已經commit的事務,所以資料庫是一致的)
RMAN>crosscheck archivelog all;   -- 檢查控制檔案和實際物理檔案的差別
RMAN>delete expired archivelog all;  -- 同步控制檔案的資訊和實際物理檔案的資訊




6. delete
Rman備份中obsolete和expired的區別
obsolete:與retention policy相關,當備份或者副本根據儲存策略而被丟棄的時候,就會被標記為該狀態。
expired:使用crosscheck對備份進行校驗,當備份或者副本被儲存在rman目錄中,但是並沒有物理存在於備份介質上時,就會被標記為該狀態;在作業系統層刪除備份集後,用crosscheck 檢測後就標誌為X(expired)。通常指丟失(被刪除)的備份。 
Delete expired;
Delete obsolete;
 
7. RESTORE…VALIDATE
RESTORE…VALIDATE命令可以效驗備份集中的某個特殊的datafile 或者backupset 能否用來進行restore操作。 
必須在資料庫mounted 狀態或者open狀態才可以使用該命令。 當我們效驗資料檔案時,不需要將datafiles offline。 因為我們效驗資料檔案時,僅僅從備份集中讀取,不會影響生產環境中的資料檔案。當我們效驗的檔案存在磁碟或者磁帶上, RMAN 會讀取備份片或者image copy中的所有blocks, 以驗證這些備份片能否用來進行一個真實的restore操作。 
7.1 效驗整個資料庫和所有歸檔的命令:
restore controlfile validate;
restore spfile validate;
RESTORE DATABASE VALIDATE;
RESTORE ARCHIVELOG ALL VALIDATE;
--如果出現類似如下的錯誤,就表示這個備份集不能夠用來進行恢復:
RMAN-06026: some targets not found - aborting restore
The following sample output shows that RMAN encountered a problem reading the specified backup:
RMAN-03009: failure of restore command on c1 channel at 12-DEC-06 23:22:30
ORA-19505: failed to identify file "oracle/dbs/1fafv9gl_1_1"
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3
7.2 驗證spfile 有效性
RMAN> restore spfile validate;
7.3 驗證控制檔案
RMAN> restore controlfile validate;
7.4 驗證歸檔有效性
RMAN> restore archivelog all validate;
7.5 單獨效驗某些歸檔檔案:
RMAN> restore archivelog sequence 54 validate;


8 change 
Change 命令允許使用者修改備份集的狀態。我們可能會遇到備份介質裝置在某個時間段中無效的情況(如突然斷電)。這時,我們就可以使用change 命令來指示這個裝置上的備份是不可用的。解決硬體故障和修復磁碟後,可以再次執行change 命令,將備份改為可用的狀態。
也可以將備份修改為不可用的狀態。在還原和恢復操作期間,不會考慮哪些不可用的備份,但在執行delete expired命令期間這些備份記錄不會被刪除。 
RMAN> list backup summary; 
RMAN> Change backupset 16 unavailable; 
RMAN> list backup summary; 
RMAN> Change backupset 16 available; 


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