備份與恢復系列 七 續 catalog中的備份指令碼

snowdba發表於2014-08-17
常用的備份命令可以儲存到本地檔案上,當我們需要的時候可以直接呼叫。也可以儲存到catalog中。下面我們看看怎樣在catalog中建立和使用指令碼。

1,建立一個零級別全備份
create script b_whole_inc0 {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level=0 cumulative
database
format '/backup/db0_%d_%s_%p_%t'
tag='whole_inc0';
release channel c1;
release channel c2;
}

2,建立一個1級增量備份
create script b_whole_inc1 {
allocate channel c1 type disk;
allocate channel c2 type disk;
backup incremental level=1 cumulative
database
format '/backup/db1_%d_%s_%p_%t'
tag='whole_inc1';
release channel c1;
release channel c2;
}

3,歸檔當前的聯機重做日誌
create script archive_log_current{
sql "alter system archive log current";
}

4,備份最近兩天內的歸檔日誌
create script b_archive_2days{
allocate channel c1 type disk;
execute script archive_log_current;
backup archivelog
from time 'SYSDATE-2'
format '/backup/ar_%d_%s_%p_%t';
release channel c1;
}

5,備份最近兩天內的歸檔日誌,刪除兩天前已經備份過的歸檔
create script archive_delete3{
allocate channel c1 type disk;
execute script archive_log_current;
backup archivelog
from time 'SYSDATE-3' until time 'SYSDATE-2'
delete input;
release channel c1;
}

在SQLPLUS下檢視指令碼catalog儲存的指令碼,可以從rman中透過host切換
RMAN>host;
sqlplus \nolog
connect rmanadmin/rmanadmin@rcat

col SCRIPT_NAME for a20
col SCRIPT_COMMENT for a20
select * from rc_stored_script;

    DB_KEY DB_NAME  SCRIPT_NAME          SCRIPT_COMMENT
---------- -------- -------------------- --------------------
         1 PRACTICE b_whole_inc0
         1 PRACTICE b_whole_inc1
         1 PRACTICE archive_log_current
         1 PRACTICE b_archive_2days
         1 PRACTICE archive_delete3

exit
exit;
重新回到rman提示符下
檢視script指令碼
RMAN> print script archive_log_current;

printing stored script: archive_log_current
{sql "alter system archive log current";
}

執行並刪除儲存指令碼

run{
execute script b_whole_inc0;
execute script b_whole_inc1;
execute script b_archive_2days;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29047826/viewspace-1252716/,如需轉載,請註明出處,否則將追究法律責任。

相關文章