熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

RMAN命令詳解

2022-06-13   來源: Oracle 

   列出對應物  RMAN>list incarnation;

   列出備份

  概述可用的備份    RMAN>list backup summary;

  B 表示 backup

  F 表示 FULL

  A 表示 archive log

   表示 incremental backup

  S 說明備份狀態 (A AVAILABLE   X EXPIRED )

  按備份類型列出備份  RMAN>list backup by file;

  按照 數據文件備份歸檔日志備份控制文件備份服務器參數文件備份 列出

  列出詳細備份     RMAN>list backup

  列出過期備份     RMAN>list expired backup;

  列出表空間和數據文件備份

  list backup of tablespace 和list backup of datafile 輸出和list backup 相似

  如list backup of tablespace user_tbs;

  list backup of datafile ;

  列出歸檔日志備份   RMAN>list archivelog all;      簡要信息

  RMAN>list backup of archivelog all; 詳細信息

  列出控制文件和服務器參數文件

  RMAN>list backup of controlfile;

  RMAN>list backup of spfile;

  =====================================================

  =====================================================

  RMAN 的 report命令

   報告最近沒有被備份的數據文件

  RMAN>report need backup days=;

   報告備份冗余或恢復窗口

  RMAN>report need backup redundancy=;

  RMAN>report need backup recovery window of days;

   報告數據文件的不可恢復操作

  RMAN>report unrecoverable;

   報告數據庫模式

  RMAN>report schema;

   報告丟棄的備份

  如果使用了保存策略備份會標記為丟棄狀態  RMAN>report obsolete; 刪除丟棄狀態備份RMAN>delete obsolete;

  =====================================================

  =====================================================

  RMAN的crosscheck 命令

   備份集有兩種狀態A(AvailableRMAN認為該項存在於備份介質上)X(Expired備份存在於控制文件或恢復目錄中但是並沒有物理存在於備份介質上)

   crosscheck 的目的是檢查RMAN 的目錄以及物理文件如果物理文件不存在於介質上將標記為Expired如果物理文件存在將維持Available如果原先標記為Expired 的備份集再次存在於備份介質上(如恢復了損壞的磁盤驅動器後)crosscheck將把狀態重新從Expired標記回Available

   crosscheck 輸出分兩部分第一部分列出確定存在於備份介質上的所有備份集片第二部分列出不存在於備份介質上的備份集片並將其標記為Expired當設置備份保 存策略後一個備份過期crosscheck之後標記為丟棄的備份狀態依舊為availabel要刪除丟棄備份delete obsolete

   示例

  crosscheck backup

  crosscheck backup of datafile ;

  crosscheck backup of tablespace users;

  crosscheck backup of controfile;

  crosscheck backup of controlfile;

  crosscheck backup tag=SAT_BACKUP;

  crosscheck backup completed after sysdate

  crosscheck backup completed between sysdate and sysdate

  crosscheck backup device type sbt;

  crosscheck archivelog all;

  crosscheck archivelog like %ARC

  crosscheck archivelog from sequence ;

  crosscheck archivelog until sequence ;

  =====================================================

  使用delete expired archivelog all 命令刪除所有過期歸檔日志

  =====================================================

  RMAN 的validate 命令

   validate 命令驗證備份集片是否能夠被還原

   list backup summary; 得到了備份集得主鍵ID如然後validate backupset ;

  =====================================================

  =====================================================

  RMAN 的備份保存策略以及change delete命令

  帶delete參數的change 命令刪除備份集從備份介質並且從控制文件和恢復目錄中刪除

  change backupset delete;

  change backuppiece delete;

  change archivelog until logseq = delete;

  兩類策略恢復窗口備份保存策略(recovery windows backup retension policy) 基於時間

  備份冗余備份保存策略(backup redundancy backup retension policy) 基於備份的數量

  兩類策略互相排斥

  即使使用了備份保存策略備份到期並不刪除只是在RMAN目錄中標記為丟棄看到的狀態依舊為available;

  要查看標記為丟棄的備份 report obsolete只有使用delete obsolete才真正物理刪除

  nfigure retension policy to recovery window of days;

  configure retension policy to redundancy ;

  顯示結果 show all;

  查看到期丟棄的備份時可能需要手工保存一些備份 可以使用change 命令帶keep 參數使用這個命令後那些被修改的備份將被認為是個longterm backup不在受保存策略影響也就是說delete obsolete 也不刪除

  要使備份時候不受保存策略影響 使用帶keep參數的backup 命令

  backup database keep forever;

  backup database keep days;

  change 命令功能

  可以修改備份為永久保存並將以及該備份的相關的日志保存下來保證總能將備份恢復到當前時間點

  change backupset keep forever logs;

  可以設置備份丟棄的新日期 將備份在多保存 天後將刪除

  change backupset keep until time sysdata + logs;

  change 可以將備份集設置為unavailable

  change backupset unavailable;

  標記為unavailable狀態的備份集並不參與crosscheck;

  =====================================================

  =====================================================

  恢復目錄的記錄刪除

   $ORACLE_HOME/rdbms/admin/prgrmancsql 腳本定期刪除恢復目錄中具有DELETED狀態的記錄

   要刪除舊的對應物記錄incarnation必須從DBINC 表中刪除這些對應物使用RC_DATABASE_INCARNATION 視圖來確定要刪除的對應物記錄要刪除的每個對應物的DBINC_KEY

  隨後啟動SQL*Plus執行delete from dbinc where dbinc_key=;

  =====================================================

  =====================================================

  手工同步恢復目錄

  resync catalog;

  Oracle同步恢復目錄的時候首先創建快照控制文件然後比較這個文件和恢復目錄完成後Oracle 更新恢復目錄使恢復目錄和控制文件同步

  =====================================================

  =====================================================

  在RMAN 中存儲腳本

  連接到目標數據庫和恢復目錄

  rman target / catalog rman/rman@rmani

  創建腳本

  RMAN>create script my_bk_script

  >{backup database plus archivelog;}

  create script my_bk_script

  打印腳本

  RMAN>print script my_bk_script;

  printing stored scipt:my_bk_script

  {backup database plus archivelog;}

  運行這個腳本備份目標數據庫

  RMAN>run {execute scipt my_bk_script;}

   刪除腳本

  RMAN>delete script my_bk_script;

  =====================================================

  =====================================================

  archivelog模式下的完全恢復

  stepset oracle_sid=recover

  rman target rman_backup/password

  configure controlfile autobackup on;

  stepbackup database plus archivelog delete input;

  stepshutdown immediate;

  step重命名所有的數據文件和控制文件不重命名聯機重做日志

  step: startup nomount;

  set DBID=****

  restore controlfile from autobackup;

  alter database mount;

  step: restore database;

  recover database;

  alter database open resetlogs;

  表空間恢復

  sqlalter tablespace users offline;

  sqlalter tablespace tools offline;

  restore tablespace userstools;

  recover tablespace userstools;

  sqlalter tablespace users online;

  sqlalter tablespace tools online;

  數據文件恢復

  sqlalter database datafile offline;

  sqlalter database datafile d:oracleoradatausersdbf offline;

  restore datafile

  restore datafile d:oracleoradatausersdbf;

  recover datafile

  recover datafile d:oracleoradatausersdbf;

  sqlalter database datafile online;

  sqlalter database datafile d:oracleoradatausersdbfonline;

  =====================================================

  =====================================================

  切換當前的incarnation 回到resetlogs 前RESET DATABASE TO INCARNATION inc_key

  =====================================================

  =====================================================

  RMAN 高級恢復

   基於時間點的恢復

  run

  {

  set until time to_date(// ::mm/dd/yy hh:mi:ss)

  restore database;

  recover database;

  alter database open resetlogs;

  }

   基於SCN 的恢復

  startup mount;

  restore database UNTIL SCN ;

  recover database UNTIL SCN ;

  alter database open resetlogs;

   基於日志序列的恢復

  startup mount;

  restore database UNTIL SEQUENCE thread ;

  recover database UNTIL SEQUENCE thread ;

  alter database open resetlogs;


From:http://tw.wingwit.com/Article/program/Oracle/201311/18245.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.