RMAN必記命令

wmsok發表於2013-07-20

-----RMAN備份生成的檔案有兩種:備份集和映象,預設情況下生成的檔案為備份集-------------

一、簡單RMAN備份(backup後面都可以支援delete all input | format 'd:\%U.bak'|tag 'fulldatabase')

1、備份資料庫     backup database format ‘c:\rman\all_%U.bak’;
2、備份表空間     backup tablespace abc format ‘c:\rman\t_%U.bak’;
3、備份資料檔案   1)backup datafile 5 format ‘c:\rman\d_%U.bak’;
                 2)backup datafile ‘C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ABC.DBF’format‘c:\rman\d_%U.bak’;
4、備份控制檔案   backup current controlfile format ‘c:\rman\ctr_%U.ctl’;
                 backup datafile 5 format ‘c:\rman\d_c_%U.bak’include current controlfile;
                 sql "alter database backup controlfile to ''/tmp/orclcontrol.bak''";
                 sql "alter database backup controlfile to trace as ''/tmp/orclcontrol.bak''";
5、備份spfile檔案 backup spfile format ‘c:\rman\sp_%U.sp’;
6、備份日誌檔案   backup archivelog sequence between 38 and 41 format ’c:\rman\ar_%U.log’delete all input(可選,備份日誌檔案後,刪除原來日誌檔案);
                 backup database plus archivelog format ‘c:\rman \d_ar_%U.d_a’;
                      此過程和backup archivelog all區別很大。先歸檔未歸檔的日誌,然後備份歸檔日誌,
                      然後備份指定專案(SQLPLUS下的備份alter system archivelog current),然後再歸檔日誌,最後備份歸檔日誌
                 backup archivelog from time "sysdate-15" until time "sysdate-7";
8、copy功能(相當於使用者管理備份)
                 backup as copy database format ‘c:\rman\%U.cy’;  
                 copy datafile 5 to ‘c:\rman\d_%U.cy’;  
                   注:backup as copy可以備份整個資料庫,copy只能備份current controlfile、datafile、tablespace等,這個資料庫不支援 
9、多路複製       backup copies 2 database format 'c:\disk1\%U.cy', 'c:\disk\%U.cy';
                 這裡要明確說的是copies並不代表生成的檔案是映象檔案,除非預設備份型別為copy或都在這裡明確backup as copy copies 2....

二、增量備份
1、差異性增量備份
backup incremental level 0 database format ‘c:\rman\L0_%U.bak’;   --增量0級備份是基礎
backup incremental level 1 database format ‘c:\rman\L1C_%U.bak’;
--如果incremental level 1 中沒有加關鍵字cumulative,預設就代表也差異備份differential
--如果沒有增量0級備份而直接進行增量備份,則備份時會資料庫會自動執行0級備份,然後自然不需要進行1級增量備份了

2、累積性增量備份
backup incremental level 0 database format ‘c:\rman\L0_%U.bak’;
backup incremental level 1 cumulative database format ‘c:\rman\L1C_%U.bak’;

    Note:差異性備份是同一級別不備份,而累積性備份是同一級別的也備份備份的級別可以為0、1、2、3、4

3、快速增量備份需要開啟塊跟蹤,啟用/關閉oracle塊更改跟蹤
開啟  alter database enable block change tracking using file‘c:\oracle\product\10.2.0\admin\orcl\bdump\block_trace.txt‘
關閉  alter database disable block change tracking;  
select * from v$block_change_tracking;
  
三、刪除備份
   備份保留策略分時間和冗餘,故一般刪除備份只刪除過期和失效的備份
    configure retention policy to recovery window of 3 days       -----保留的備份不一定僅僅是3天的,應該是恢復到的3天之內任何時間點所需要的所有備份.
    configure retention policy to redundancy 1
    configure retention policy to none                            ---三選一
    檢查
    crosscheck archivelog all/backup/backupset/......         ----把物理上不存在的歸檔或備份標記為expired
    delete expired archivelog all
           當手工刪除了磁碟上的檔案後,Rman備份會檢測到日誌缺失,無法進一步執行。所以執行crosscheck,之後Rman備份可以恢復正常。
           注意delete命令並沒有把對應備份集資訊從控制檔案中刪除,只是把expired標記改成了deleted了,所以備份集號才能一直增長,控制檔案也越來越大
------------------------------------------
    report obsolete
    delete obsolete
           針對不符合retention policy要求的檔案進行刪除
------------------------------------------
其它
delete archivelog|backup until time 'sysdate - 30'
delete backupset 100,101,102
delete [noprompt] bacup            ----[不提示]刪除所有備份
delete [noprompt] expired          ----[不提示]標記所有失效expired的記錄為deleted

    注:在recovery window of 1 days的假設下(此處的半天、一整天、1.5天是個大概的量):
    ㈠ optimization和read only下:半天
    ㈡ report obsolete:一整天
    ㈢ report need backup:1.5天

四、檢視備份
    list backup summary        ----備份彙總
    list backup|backupset|copy            -----檢視所有的備份             
list backup|backupset of database
list backup|backupset of tablespace users
list backup|backupset of datafile 1,2,3
list datafilecopy all;
list backup|backupset|copy of controlfile
list backup|backupset|copy of archivelog all
list backup|backupset of spfile      ------引數檔案不可以備份為映象檔案的
list backup|backupset completed after "sysdate-7";
list backup|backupset completed before "sysdate-7";
---------------------------------------------------
list archivelog all;           ---不是備份的歸檔,僅僅是歸檔日誌
list archivelog  all until  time 'sysdate-30'; 

五、驗證備份
   restore validate controlfile|spfile|database;
    validate device type disk backupset 1;

六、報告
     report schema;
     report obsolete;
 report unrecoverable;  ----報告不可恢復的資料檔案
 report need backup;
 report need backup days 4; ----4天沒有備份的資料檔案
 report need backup incremental 4   ---- Report of files that need more than 4 incrementals during recovery
 report need redundancy 3   -----列出恢復路徑需超過4個等級1增量備份的資料檔案
 report need backup tablespace users,system;
七、校驗備份
RMAN> crosscheck backup;
RMAN> crosscheck backup of database|tablespace|controlfile|spfile|archivelog all;
RMAN> crosscheck backupset
RMAN> crosscheck archivelog all

八、找回歸檔日誌檔案
    重建控制檔案或者轉移備份後執行了delete expired
rman>catalog datafilecopy 'd:\backup\xxwz_data.dbf';
rman>catalog archivelog 'd:\arch\arch_12.arc','d:\arch\arch_13.arc';
    rman>catalog start with 'd:\arch' noprompt;//登記這個目錄的所有歸檔日誌檔案資訊

九、change命令
   修改RMAN的備份狀態
rman>change backupset 49 unavailable;     ----快速恢復區不可用
rman>change backupset 49 available;

   從保留策略中豁免(即不受保留策略的限制)
rman>change backupset 49 keep forever nologs;    -----永不限制    
rman>change datafilecopy 'd:\copy\xxx.dbf' keep until 'sysdate+60';  ----不限制60天,不支援快速恢復區、
rman>change backupset 1 nokeep    -----恢復預設保留策略

    取消登記資訊
rman>change backuppiece 51 uncatalog;   -----uncatalog不支援備份集,但支援單獨的備份片和映象
rman>change datafilecopy 'd:\backup\xxwz_data.dbf' uncatalog;
rman>change archivelog ... uncatalog

    其它
    rman>change backupset 1 crosscheck;  ----相當於crosscheck
    rman>change backupset 1 delete;      ----相當於delete
    rman>change backup of database validate   ----相當於validate
    

更高深的命令請看RMAN經典命令

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