RMAN詳細教程(一):基本命令代碼 RMAN詳細教程(二):備份、檢查、維護、恢復 RMAN詳細教程(三):備份腳本的組件和註釋 RMAN詳細教程(四):備份腳本實戰操做 html
服務器會話,服務器上的進程, 是真正用來幹活的; sql
是一個通道, 用來鏈接數據庫與備份的存儲介質; 通道配置選項:數據庫
connect :是一個Oracle Net鏈接串。通常不適用於單實例環境 format : 爲通道建立的備份片或映像副本肯定路徑與文件名 duration: 控制做業的時間總量,以小時和分鐘進行指定 maxopenfiles:該選項限制RMAN一次可以打開的輸入文件數,默認爲 maxpiecesize:限制一個備份集分割的備份片的大小,以字節(默認)、k、m、g爲單位 parms:可以被用於設置sbt_type通道所需的任何變量 filesperset:備份集中可容納的文件數 backup set: 是一個集合, 是由一個或多個物理文件組成, 是一個邏輯單位. backup piece: 是真正的一個輸出文件, 受到操做系統單個文件的限制, 即 maxpiecesize 這個參數;
備份片,表示一個由RMAN產生備份的文件.用OS工具能夠實實在在的看到; bash
備份集,表示進行一次備份所產生的全部備份片集合,是一個邏輯上的概念; <font color='red'>一個數據文件能夠跨備份片存在,而不能跨備份集存在。</font> 服務器
RMAN> run { allocate channel c1 device type disk maxpiecesize 1500m; backup database plus archivelog delete all input; release channel c1; }
allocate channel命令在目標數據庫啓動一個服務器進程,同時必須定義服務器進程執行備份或者恢復操做使用的I/O類型。 每一個備份片的最大爲1500M,超過這個大小就會產生新的備份片,在啓動備份時,會歸檔當前的日誌,生成一個備份片,刪除已備份的歸檔日誌.而後備份數據文件,生成兩個備份片(數據文件2G),再備份當前的SPFILE 和CONTROLFILE,生成一個備份片,最後再作一次LOGSWITCH,備份歸檔日誌,生成一個備份片,所以能夠這樣描述,這個備份集包含成五個備份片,一個備份片包含文件個數由 FILESPERSET 指定. session
RMAN> run { allocate channel c1 device type disk maxpiecesize 1500m; backup database filesperset 1; release channel c1; }
表示一個備份片中包含一個文件,即便沒有達到 1500M,也生成新的備份片,如個人有五個數據文件,還有 SPFILE和 CONTROLFILE 一個備份片,一共生成六個備份片.若是加上plus archivelog delete all input這個備份選項,那 FIELSPERSET 這個參數就會被IGNORE掉。 oracle
$cat arch_rman_backup.sh:app
source /home/oracle/.bash_profile rman target / log=/u01/app/script/arch_rman.log<<EOF run { allocate channel ch1 device type disk; allocate channel ch2 device type disk; sql 'alter system archive log current'; sql 'alter system archive log current'; backup archivelog all format '/backup/arch_%U_%d_%T_%t' delete all input; backup current controlfile format '/backup/ctl_%U_%d_%T_%t'; crosscheck backup; crosscheck archivelog all; delete noprompt expired backup; delete noprompt obsolete; #delete noprompt backup of database completed before 'sysdate -7'; #delete noprompt archivelog all; #delete noprompt backup of archivelog all completed before 'sysdate -7'; release channel ch1; release channel ch2; } EOF
$cat arch_rman_backup.sh工具
source /home/oracle/.bash_profile rman target / log=/u01/app/script/arch_rman.log<<EOF run { allocate channel ch1 device type disk; allocate channel ch2 device type disk; sql 'alter system archive log current'; #backup database format '/backup/db_%d_%T_%U'; sql 'alter system archive log current'; backup archivelog all format '/backup/arch_%U_%d_%T_%t' delete all input; backup current controlfile format '/backup/ctl_%U_%d_%T_%t'; crosscheck backup; crosscheck archivelog all; delete noprompt expired backup; delete noprompt obsolete; #delete noprompt backup of database completed before 'sysdate -7'; #delete noprompt archivelog all; #delete noprompt backup of archivelog all completed before 'sysdate -7'; release channel ch1; release channel ch2; } EOF
原文出處:https://www.cnblogs.com/WoLykos/p/11690334.htmlspa