RMAN命令總結


一,RMANR 連接到庫 1),連接本地數據庫 a,如果本地有多少實例,則需要設置環境變量ORACLE_SID,  windows 平台: set ORACLE_SID= INSTANACE NAME  UNIX/LINX平台: export ORACLE_SID=INSTANCE NAME 8i : $rman target / nocatalog  9i以上的數據庫直接 rman target / 就可以了 nocatalog&catalog: 就是連接時,是以控制文件記錄還是以恢復目錄來記備份信息,這就二種連接的差別,catalog是需要配置的。

b,如果本地只有一個實例:且設置了環境變量:則無需指定實例了.

連接進入rman,如果使用操作系統驗證,則用 rman target /                              如果沒有使用操作系統驗證: 則使用 rman target user/passwd 也可以直接rman,再在里面用connect 用戶名/密碼

2),連接遠程數據庫, 1、要確定數據庫能夠進行遠程管理。 2、在本地創建一個到目標數據庫的連接,同時給一個網絡服務名比如叫做test 3、執行:rman target sys/password@test 4、本地版本要於遠端版本一致或高 就可以了,記住@后面一定是網絡服務名,rman target sys/密碼@test

3),帶日志的連接 rman target / log f:\rman_log.txt

4),暫退rman,回到操作系統的命令提示符 rman> host; $sqlplus "/ as sysdba" 這樣就可以進入sql環境,退回exit ,exit 就又回到rman提示符

二,rman命令的執行方式 1),單個執行 rman>backup database;

2),批處理 rman>rman{ ...... }

3),運行腳本 a, 用命令行方式調用操作系統中保存的腳本 c:\ rman target / @backup_db.rman 或 c:\ rman target / cmdfile = backup_db.rman

b, 在rman中執行操作系統中保存的腳本文件 rman> @backup_db.rman

c, 運行存貯在catlog中的腳本(需要首先為rman創建恢復目錄) rman > run { execute script backup_whole_db };

三,簡單常見備份類型及解釋 1).整庫 rman> backup database     整庫備份,生成二個備份片段,一個數據文件片段,一個控制文件和spfile,放在oracle 軟件的安裝目錄下 rman> backup database format 'f:\bak_u%';     指定備份集的目錄  rman> list backup of database;                           查看創建的全庫備份

2).表空間 rman> backup tablespace users;                        表空間的備份,當然也可以format 到指定目錄 rman> list backup of tablespace users;            查看users表空間的備份情況,注意如果做過全備份,全備份users表空間的信息也會顯示出來 rman> delete backup 10;                                       刪除編號為10的備份集

3),數據文件 rman> backup datafile 'f:\users01.dbf';                數據文件的備份 rman> backup datafile n                                         數據文件的備份,n 是數據文件的絕對編號(備份多個數據文件,中間用逗號隔開) rman> list backup of datafile n;                            n是數據文件的編號,通過dba_data_files (顯示多個數據文件,編號用逗號隔開)

4),控制文件 rman> backup current controlfile;                         手工單獨備份控制文件 rman> backup database include current controlfile;   備份任何東東的時候都可以包含備份控制文件,當然要加include current controlfile子句 rman> backup current controllfile include current controlfile 這樣就可以備份二次控制文件 rman > configure controlfile autobackup on;     只要設置為on后,不管備份什么都會備份控制文件       備到哪里要根據參數決定。當設置為on后,controlfile 會自動備份到$ORACLE_HOME/dbs下, rman > list backup of controlfile                           查看控制文件的備份情況

5),歸擋文件的備份 rman> backup archivelog all;                               備份所有可訪問到的歸檔文件,當然這個all可以由其他關鍵字眼代替,until, scn, time,sequence                                                                                     來指定要備份的歸檔區間, rman>backup current controlfile plus archivelog; 當然備份任何東東加上plus archivelog,就可備份歸檔文件. 這二種備份方式的區別: 通常在線備份的時候,日志文件一直在不斷生成,如何做到完全備份歸檔呢? a, backup archivelog all, 先alter system switch logfile, 立即備份這些歸檔,對后續生成的歸檔管不了 b, backup ... plus archivlog, 步驟是: 先switch logfile,backup archivelog all,,再執行備份項目備份,再switch logfile ,再backup archivelog all,     完全備份 rman> delete all input                      備份完后把archivelog 刪掉

6),初始化參數文件的備份 通常在備份控制文件時,會自動備份spfile ,當然也可以專門手動備份 rman>backup spfile;

7),對備份集進行備份 rman>backup backupset all;                               對以前所有備份再進行備份一次,如果很多,這個過程很膨大 rman>bakcup backupset n;                                 n 指備份集的id號,當然可以指定多個,逗號隔開 rman>delete input 參數;                  刪除某個備份集

呵呵,有以上簡單備份的基礎,相信寫個塊應該沒問題了!

四,rman 命令綜述 1) . show                                                                注:配置項后面跟了# default的表示該項仍是初始配置,未被修改過。 rman>show all;                                                     太多,檢驗自已的眼神 ~:~ 哈哈 rman>show controlfile autobackup;                  查看控制文件的配置參數

2). configure                                                                參考show all里面的參數,根據自身備份特性修改rman的初始參數 rman>configure retention policy to recovery window of n days;              基於時間的保留策略 rman>configure retention policy to redundancy n;                                     基於冗余數量的保留策略 rman>configure retention policy to none;                                                    取消備份保留策略 rman>configure backup optimization on;                                                    啟用備份優化 rman>configure backup optimization off;                                                   關閉備份優化 rman>configure default device type to disk;                                                缺省備份設備磁盤 rman>configure default device type to sbt;                         缺省備份設備磁帶 rman>configure device type disk parallelism 2;                                         備份通道為2,或並行度2,allocate channel可手工指定; rman>configure controlfile autobackup on;                                                備份任何自動備份控制文件 rman>configure controlfile autobackup off;                                                 自動備份控制文件關 rman>configure controlfile autobackup format for device type disk to ' f:\backup\%F';    自動備份的格式及路徑設置 rman>configure snapshot controlfile name to 'f:\database\controlbak.ora';      在備份期間生在成控制文件的快照 rman>configure database / archivelog backup copies                            設置備份文件冗余度,即備份時生成copy rman>configure maxsetsize =...;                                                                   配置備份集的最大值 rman>configure encryption ....                                                                       設置備份密碼,用於安全恢復 rman>configure encryption for database on/off;                                        啟用或關閉此密碼 rman>configure encryption algorithm 'ASE256';                                        指定加密算法為ASE256, rman>configure archivelog deletion policy to appled on standby;         在rac環境中,standby 端可刪備份策略,默認只有primary端可刪 rman>configure exclude for tablespace 'users';                備份進排除users表空間不備份 rman> configure ... clear;                                                                                 把更改項恢復到默認參數

3) .set命令                       我們講了configure是全局的,那么set就是會話級的更改,牛吧 ! 塊外運行的命令 rman>set echo on | off                                    顯示或關閉rman顯示 rman>set commang id to 'wangzz'              這時你在v$session 視圖中,你會發現client_info 列值有id=wangzz的信息,方便你查看備份時狀態. rman>set DBID n;                                           只能在nomount模式下執行,指定數據庫的標識符 塊內運行的命令 rman>run{           allocate channel c1 to device type disk;            set newname for datafile 4 to 'f:\123.dbf';              備份時把絕對文件重新命名並指定到新的地方,牛,這樣也可以,i 服了u           .....           }

rman> run{           allocate ....           set until time "to_date('2010-02-01','yyyy-mm-dd');     設置恢復到某個時間點. 太強了,又汗一個.           ...          }

rman> run{           ...          set backup copies ;                             設定備份片段的冗余數          ...          }

rman> run{           ...          set archivelog destination to 'f:\...';         指定歸檔文件的備份路徑,默認在log_archive_dest_1;                    ...          }

4) . list rman>list backup;                                                 下面就不作說明了,太簡單了 rman>list backup of controfile; rman>list backup of datafile 'f:\user01.dbf' rman>list backup of datafile n; rman>list backup of archivelog all; rman>list device type disk backup;                    列出某個設備上的所有信息, rman>list copy of tablespace 'system'             列出系統表空間的(副本)備份信息, rman>list expired backup;                                   列出無效的備份

5) . delete  rman資料庫(rman repository),這是一個邏輯概念,指rman備份恢復需要用到的數據信息,如備份集路徑,歸檔文件路徑等, 如果使用了恢復目錄,則這部分數據保存於恢復目錄中(recovery catalog),否則只會保存在目標數據庫的控制文件中。 rman>delete obsolete;                                                     刪除過期備份 rman>delete expired backup;                                          先crosscheck檢查備份集,再標記失效的備份,再刪除 rman>delete expired copy;                                              刪除expired 副本 rman>delete backupset 19;                                             刪除特定備份集  rman>delete backuppiece 'f:\backup\demo_19.bak'   刪除特定備份片 rman>delete backup;                                                         刪除所有備份集  rman>delete datafile copy 'f:\backup\demo_19.bak'    刪除特定映像副本 rman>delete copy;                                                              刪除所有映像副本 rman>backup archivelog all delete input;                      備份歸檔后刪除歸檔 rman>delete backupset 22 format="f:\backup\%u.bak" delete input 備份備份集22后,刪除原備份集的id 22;

附錄:當在delete obsolete 時出現如下錯誤,主要原因是因為當前的備份設備類型( 如原默認是磁帶,現變成磁盤了。用show all查看一下)不一致了。 RMAN-06091 no channel allocated for maintenance (of an appropriate type) 解決方法: 用下列命令組合就可以清除,你會明白意思的! rman> ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK; rman> delete obsolete; rman> allocate channel for maintenance device type 'sbt_tape' PARMS '...'; rman> delete obsolete; rman>allocate channel for maintenance type sbt_tape; rman>allocate channel for maintenance type disk; rman>delete obsolete device type disk;

6) , report 報表顯示:                       就是對前面所有備份的信息進行分析 rman>report schema at time'sysdate-7';                      查看7天前數據庫的模式  rman>report need backup;                                              查看所有需要備份的文件 rman>report need backup tablespace system;           查看指定表空間是否需要備份 rman>report obsolete;                                                      查看過期 RMAN> report schema;                           報告目標數據庫的物理結構

7) , crosscheck                                                             檢查備份或歸檔物理文件的狀態,如果物理文件存在,並且控制文件或(恢復目錄)中                                              有匹配記錄,則有效,如果文件不存在,則expired無效. rman>crosscheck archivelog all;                               驗證歸檔日志文件,當nls_lang=simplified chinese_china時,10g有一個bug,當提示                                              驗證成功,要小心,這個說明是失敗的,當提示驗證失敗時,反而是成功的。切記                                              當nls_lang=american_america時,就正常顯示了 rman>crosscheck bakcup;                                          驗證所有備份集

8) , change 修改狀態                      修改備份文件或歸檔日志文件的狀態,不是指物理文件,而是這些文件在控制文件                                              或恢復目錄中對應記錄的狀態,有二種available & unavailable rman>change backupset n unavailable;                 備份集n為不可用 rman>change backup of tablespace user unavailable;      對user 表空間的備份集設為不可用, rman>change archivelog logseq=n unavailable;                  n為歸檔文件序號,可能通過list archivelog all 或查詢v$ARCHIVED_LOG 獲取,                                                      當然你也可以指定歸檔文件的詳細路徑 rman>change archivelog logseq=n delete;                            序列號為n的歸檔文件,被更改狀態后直接刪除

9),format 參數 %c:備份片的拷貝數(從1開始編號); %d:數據庫名稱;%D:位於該月中的天數 (DD); %M:位於該年中的月份 (MM); %F:一個基於DBID 唯一的名稱,這個格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 為該數據庫的DBID,YYYYMMDD 為日期,QQ 是一個1-256 的序列; %n:數據庫名稱,並且會在右側用x字符進行填充,使其保持長度為8; %u:是一個由備份集編號和建立時間壓縮后組成的8字符名稱。利用%u可以為每個備份集生成一個唯一的名稱; %p:表示備份集中備份片段的編號,從1 開始編號; %U:是%u_%p_%c的簡寫形式,利用它可以為每一個備份片段(即磁盤文件)生成一個唯一名稱,這是默認的命名方式; %s:備份集的號; %t:備份集時間戳; %T:年月日格式(YYYYMMDD);

有了上述基礎,維護應該沒什么問題了吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM