oracle備份目標:
1:每天晚上2點執行數據庫全備
2:備份集保留2份
server環境:
oracle: 11g2 64bit
centos: 5.8 64bit
以下爲腳本代碼:
rman腳本:
run{
set backup copies 2;
指定備份集 爲2份 。要修改 備份策略 中冗餘份爲2份
backup device type disk format '/u01/t/1/1_%U.bak','/u01/t/2/2_%U.bak'
database plus archivelog filesperset 20
delete all input;
指定數據庫全備(包括歸檔日誌,filesperset 20 表示歸檔日誌備份集中最多隻能包含20個歸檔日誌文件)
並指定其路徑,備份完成後刪除已經備份的歸檔日誌文件
}
allocate channel for maintenance device type disk;
爲crosscheck,delete操作指定專用通道
crosscheck backupset;
delete noprompt obsolete;
直接刪除過期備份,不用交互提醒
將該腳本保存爲:t.rman
編寫shell腳本:
#!/bin/sh
#this is backup database script
DATE=`/bin/date +%Y%m%d`
cd ~/shell
echo "$DATE ---- backup is begin..." >> /home/oracle/shell/backup_info.log
export ORACLE_SID=test
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
必須加上oracle用戶的環境變量,下面的rman命令才能執行
rman target / @t.rman >> /home/oracle/shell/backup_info.log
echo "$DATE ---- backup is over!!" >> /home/oracle/shell/backup_info.log
保存腳本爲 t.sh。
注意:
rman腳本和shell腳本需放在同一個目錄下
在oracle用戶下創建計劃任務:
crontab -e
0 2 **
* /bin/sh
/home/oracle/shell/t.sh
此時 rman備份的計劃任務完成!!