RMAN詳細教程(三):備份腳本的組件和註釋

RMAN詳細教程(一):基本命令代碼 RMAN詳細教程(二):備份、檢查、維護、恢復 RMAN詳細教程(三):備份腳本的組件和註釋 RMAN詳細教程(四):備份腳本實戰操做    html

1、基本組件:

一、Server session:

服務器會話,服務器上的進程, 是真正用來幹活的;  sql

二、Channel:

是一個通道, 用來鏈接數據庫與備份的存儲介質; 通道配置選項:數據庫

connect :是一個Oracle Net鏈接串。通常不適用於單實例環境
format : 爲通道建立的備份片或映像副本肯定路徑與文件名
duration: 控制做業的時間總量,以小時和分鐘進行指定
maxopenfiles:該選項限制RMAN一次可以打開的輸入文件數,默認爲
maxpiecesize:限制一個備份集分割的備份片的大小,以字節(默認)、k、m、g爲單位
parms:可以被用於設置sbt_type通道所需的任何變量
filesperset:備份集中可容納的文件數
backup set: 是一個集合, 是由一個或多個物理文件組成, 是一個邏輯單位.
backup piece: 是真正的一個輸出文件, 受到操做系統單個文件的限制, 即 maxpiecesize 這個參數;

 

三、backuppiece:

備份片,表示一個由RMAN產生備份的文件.用OS工具能夠實實在在的看到;  bash

四、backupset:

備份集,表示進行一次備份所產生的全部備份片集合,是一個邏輯上的概念; <font color='red'>一個數據文件能夠跨備份片存在,而不能跨備份集存在。</font>    服務器

2、基本做業模板:

示例1:

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

示例2:

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

3、RMAN備份腳本:

一、全備:

$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

相關文章
相關標籤/搜索