天天看點

Rman Script 集合

    備份,是作為DBA的頭等大事,無論你的技術多強大,沒有備份,出問題的時候,依然束手無策。

    這裡隻是在工作中總結的備份指令,後續收集到好的腳本,會持續更新......

1、在RAC環境下,如果兩個節點的archivelog分别儲存在自己的本地,在備份的時候如何操作呢?

   開啟兩個通道并分别用TNS連接配接串連接配接到兩個執行個體,進行備份,相當開啟一個備份腳本但是同時在兩個節點執行的。注:這個需要配置tnsnames檔案,不然無法找到另一個節點。

nbrbdb1$[/archivelog]more backup_log.sh 

#!/bin/sh 

#set env 

export ORACLE_HOME=/oracle/product/10.2.0/db_1 

export ORACLE_SID=orcl1 

export PATH=$PATH:$ORACLE_HOME/db_1/bin:/sbin:/usr/sbin 

echo "-----------------------------start-----------------------------";date 

#backup start 

$ORACLE_HOME/bin/rman <<EOF 

connect target 

delete noprompt obsolete; 

run {  

allocate channel c3 type disk connect 'sys/oracle@orcl1'; 

allocate channel c4 type disk connect 'sys/oracle@orcl2'; 

sql 'alter system archive log current';  

backup archivelog all delete input format '/archivelog/rman/%U.bak' filesperset =5; 

release channel c3;  

release channel c4;  

exit; 

EOF 

echo "------------------------------end------------------------------";date 

2、如果備份時候,發現作業系統限制了單個檔案的大小怎麼辦?

在備份的時候設定通道生成的單個檔案的大小,下例既設定大小為2G

configure controlfile autobackup on; 

configure controlfile autobackup format device type disk to '/backup/controlfile/%F'; 

allocate channel cannel1 type disk connect 'sys/oracle@rac1'; 

allocate channel cannel2 type disk connect 'sys/oracle@rac2'; 

set limit channel cannel1 kbytes 2000000;   

set limit channel cannel2 kbytes 2000000; 

backup incremental level 0 database tag 'fullbak_level0' format '/backup/database/full_level0_%U'; 

release channel cannel1; 

release channel cannel2; 

3、如果希望删除指定日期的歸檔檔案,可以使用以下的指令

delete archivelog until time 'sysdate-7';  <<<<<删除歸檔時間大于7天的,按照歸檔檔案FIRST_TIME計算

DELETE ARCHIVELOG ALL COMPLETED BEFORE "to_timestamp('2012-10-10 05:00:00','YYYY-MM-DD hh24:mi:ss')";

<<<<< 删除時間早于2012-10-10 05:00:00的歸檔,根據歸檔檔案COMPLETION_TIME決定。

delete noprompt archivelog until time 'sysdate-1' backed up 1 times to device type disk;

4、備份一天以前沒有備份過的歸檔,在備份的過程中,跳過不可讀寫的檔案,最後将删除這些歸檔檔案。

Backup not backed up 1 times archivelog until time 'sysdate-1' SKIP INACCESSIBLE DELETE INPUT; 

本文轉自 hsbxxl 51CTO部落格,原文連結:http://blog.51cto.com/hsbxxl/1060092,如需轉載請自行聯系原作者