RMAN命令詳解

絕世好文:
               轉自:[url]http://blog.csdn.net/managergh/archive/2007/03/06/1521944.aspx[/url]
1 列出對應物 
RMAN>list incarnation;
  
2 列出備份
  
 2.1概述可用的備份    RMAN>list backup summary;
               B 表示 backup
               F 表示 FULL
               A 表示 archive log
               0 1 表示 incremental backup
               S 說明備份狀態 (A AVAILABLE   X EXPIRED )
  
  2.2按備份類型列出備份  RMAN>list backup by file;
               按照 數據文件備份,歸檔日誌備份,控制文件備份,服務器參數文件備份 列出
  
  2.3列出詳細備份     RMAN>list backup;
  
  2.4列出過時備份     RMAN>list expired backup;
  
  2.5列出表空間和數據文件備份
              list backup of tablespace 和list backup of datafile 輸出和list backup 類似
               如:list backup of tablespace user_tbs;
                 list backup of datafile 3;
  
  2.6列出歸檔日誌備份   RMAN>list archivelog all;      簡要信息
    RMAN>list backup of archivelog all; 詳細信息
  
  2.7列出控制文件和服務器參數文件
               RMAN>list backup of controlfile;
               RMAN>list backup of spfile;
  
  =====================================================
  =====================================================
   RMAN 的 report命令
  
  1. 報告最近沒有被備份的數據文件
    RMAN>report need backup days=3;
   
  2. 報告備份冗餘或恢復窗口
    RMAN>report need backup redundancy=2;
    RMAN>report need backup recovery window of 2 days;
   
  3. 報告數據文件的不可恢復操做
    RMAN>report unrecoverable;
  
  4. 報告數據庫模式
    RMAN>report schema;
   
  5. 報告丟棄的備份
    若是使用了保存策略,備份會標記爲丟棄狀態  RMAN>report obsolete; 刪除丟棄狀態備份RMAN>delete obsolete;
  
  =====================================================
  =====================================================
   RMAN的crosscheck 命令
  
  1 備份集有兩種狀態A(Available,RMAN認爲該項存在於備份介質上)X(Expired,備份存在於控制文件或恢復目錄中,可是並無物理存在於備份介質上)
   
   2 crosscheck 的目的是檢查RMAN 的目錄以及物理文件,若是物理文件不存在於介質上,將標記爲Expired。若是物理文件存在,將維持Available。若是原先標記爲Expired 的備份集再次存在於備份介質上(如恢復了損壞的磁盤驅動器後),crosscheck將把狀態從新從Expired標記回Available。
  
   3 crosscheck 輸出分兩部分。第一部分列出肯定存在於備份介質上的全部備份集片,第二部分列出不存在於備份介質上的備份集片,並將其標記爲Expired。當設置備份保 存策略後,一個備份過時,crosscheck以後標記爲丟棄的備份狀態依舊爲availabel,要刪除丟棄備份delete obsolete。
  
  4 示例:
   crosscheck backup
   crosscheck backup of datafile 1;
   crosscheck backup of tablespace users;
   crosscheck backup of controfile;
   crosscheck backup of controlfile;
   crosscheck backup tag='SAT_BACKUP';
   crosscheck backup completed after 'sysdate - 2'
   crosscheck backup completed between 'sysdate - 5' and 'sysdate -2 '
   crosscheck backup device type sbt;
   crosscheck archivelog all;
   crosscheck archivelog like '%ARC00012.001'
   crosscheck archivelog from sequence 12;
   crosscheck archivelog until sequence 522;
  
  =====================================================
  =====================================================
   RMAN 的validate 命令
  
  1 validate 命令驗證備份集片是否可以被還原
  
  2 list backup summary; 獲得了備份集得主鍵ID如40,而後validate backupset 40;
  =====================================================
  =====================================================
   RMAN 的備份保存策略以及change ,delete命令
  
  0.帶delete參數的change 命令刪除備份集,從備份介質,而且從控制文件和恢復目錄中刪除。
   change backupset 117,118 delete;
   change backuppiece 1304 delete;
   change archivelog until logseq =544 delete;
  
  1.兩類策略:恢復窗口備份保存策略(recovery windows backup retension policy) 基於時間
        備份冗餘備份保存策略(backup redundancy backup retension policy) 基於備份的數量
  
   兩類策略互相排斥
   
  2.即便使用了備份保存策略,備份到期並不刪除,只是在RMAN目錄中標記爲丟棄,看到的狀態依舊爲available;
   要查看標記爲丟棄的備份 report obsolete,只有使用delete obsolete才真正物理刪除。
  
  3.configure retension policy to recovery window of 7 days;
   configure retension policy to redundancy 3;
   顯示結果 show all;
   
  4.查看到期丟棄的備份時,可能須要手工保存一些備份 ,可使用change 命令帶keep 參數,使用這個命令後,那些被修改的備份將被認爲是個long-term backup,不在受保存策略影響也就是說delete obsolete 也不刪除。
  
  5.要使備份時候不受保存策略影響 ,使用帶keep參數的backup 命令
   backup database keep forever;
   backup database keep 5 days;
  
  6.change 命令功能
  
    能夠修改備份爲永久保存並將以及該備份的相關的日誌保存下來,保證總能將備份恢復到當前時間點
    change backupset 31 keep forever logs;
    能夠設置備份丟棄的新日期 ,將備份在多保存7 天,7 天后將刪除
    change backupset 32 keep until time 'sysdata + 7' logs;
  
  7.change 能夠將備份集設置爲unavailable
    change backupset 33 unavailable;
    標記爲unavailable狀態的備份集並不參與crosscheck;
  =====================================================
  =====================================================
   恢復目錄的記錄刪除
  
  1. $ORACLE_HOME/rdbms/admin/prgrmanc.sql 腳本按期刪除恢復目錄中具備DELETED狀態的記錄
  
  2. 要刪除舊的對應物記錄incarnation.必須從DBINC 表中刪除這些對應物,使用RC_DATABASE_INCARNATION 視圖來肯定要刪除的對應物。記錄要刪除的每一個對應物的DBINC_KEY
    隨後啓動SQL*Plus,執行delete from dbinc where dbinc_key=2;
  =====================================================
  =====================================================
   手工同步恢復目錄
  
  resync catalog;
  
  Oracle同步恢復目錄的時候,首先建立快照控制文件,而後比較這個文件和恢復目錄,完成後,Oracle 更新恢復目錄,使恢復目錄和控制文件同步
  =====================================================
  =====================================================
   在RMAN 中存儲腳本
  
  1,鏈接到目標數據庫和恢復目錄
    rman target / catalog rman/rman@rman9i
   
  2,建立腳本
    RMAN>create script my_bk_script
    2>{backup database plus archivelog;}
     create script my_bk_script
    
  3,打印腳本
   RMAN>print script my_bk_script;
   printing stored scipt:my_bk_script
   {backup database plus archivelog;}
   
  4,運行這個腳本,備份目標數據庫
   RMAN>run {execute scipt my_bk_script;}
   
  5 刪除腳本
   RMAN>delete script my_bk_script;
  =====================================================
  =====================================================
   archivelog模式下的徹底恢復
  
  step1:set oracle_sid=recover
      rman target rman_backup/password
      configure controlfile autobackup on;
      
  step2:backup database plus archivelog delete input;
  
  step3:shutdown immediate;
  
  step4:重命名全部的數據文件和控制文件,不重命名聯機重作日誌。
  
  step5: startup nomount;
      set DBID=****
      restore controlfile from autobackup;
      alter database mount;
     
  step6: restore database;
      recover database;
      alter database open resetlogs;
  
  表空間恢復
  
  sql"alter tablespace users offline";
  sql"alter tablespace tools offline";
  restore tablespace users,tools;
  recover tablespace users,tools;
  sql"alter tablespace users online";
  sql"alter tablespace tools online";
  
  數據文件恢復
  
  sql"alter database datafile 3 offline";
  sql"alter database datafile 'd:oracleoradatausers01.dbf' offline";
  restore datafile 3
  restore datafile 'd:oracleoradatausers01.dbf';
  recover datafile 3
  recover datafile 'd:oracleoradatausers01.dbf';
  sql"alter database datafile 3 online";
  sql"alter database datafile 'd:oracleoradatausers01.dbf'online";
  
  =====================================================
  =====================================================
  切換當前的incarnation 回到resetlogs 前RESET DATABASE TO INCARNATION inc_key
  
  =====================================================
  =====================================================
  
   RMAN 高級恢復      1 基於時間點的恢復   run   {   set until time "to_date('07/01/02 15:00:00','mm/dd/yy hh24:mi:ss')"'   restore database;   recover database;   alter database open resetlogs;   }      2 基於SCN 的恢復   startup mount;   restore database UNTIL SCN 10000;   recover database UNTIL SCN 10000;   alter database open resetlogs;      3 基於日誌序列的恢復   startup mount;   restore database UNTIL SEQUENCE 100 thread 1;   recover database UNTIL SEQUENCE 100 thread 1;   alter database open resetlogs;  
相關文章
相關標籤/搜索