一個較完整的RMAN增量備份指令碼
把最近剛改寫完成的RMAN增量備份指令碼貼上來,經過幾天的測試基本執行良好,下一步可以在生產庫上用了,測試過程中特別增加了儘量節約空間的考慮(磁碟空間不是很冗餘),
備份策略:
每週日凌晨做0級備份,
每週一,四做一級備份,
每週二,三,五,六做二級備份,
00 4 * * 0
/u01/app/oracle/rman_bak/scripts/rman_bak.sh 0
00 4 * * 1,4
/u01/app/oracle/rman_bak/scripts/rman_bak.sh 1
00 4 * * 2,3,5,6
/u01/app/oracle/rman_bak/scripts/rman_bak.sh 2
備份指令碼:
#!/bin/bash
#set
env
export ORACLE_BASE=/u01/app/oracle
export
ORACLE_HOME=$ORACLE_BASE/db10g
export ORACLE_SID=emar
export
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export
PATH=$ORACLE_HOME/bin:$PATH
DATE=`date +%w`
DATE_2=`date
+%Y%m%d`
BACKUP_PATH=/u01/app/oracle/rman_bak
LEVEL=$@
TARGET_SID=emar
RMAN_SID=emar.emar
BIN=/u01/app/oracle/db10g/bin
#
Delete the data backuped last time
rm -rf $BACKUP_PATH/data/$DATE/*
if [ $# != 1 ]; then
echo "usage: rman_bak.sh n
where n is the rman
backup level(0,1,2 is permitted)."
exit 1
fi
if [ $@ -ne 0 -a $@ -ne 1
-a $@ -ne 2 ]; then
echo "usage: rman_bak.sh n
where n is the rman backup
level(Only 0,1,2 is permitted)."
exit 2
fi
echo
"-----------------------------start-----------------------------";date
if [
$LEVEL = 0 ]; then
$BIN/rman log
$BACKUP_PATH/log/level.$TARGET_SID.$LEVEL.$DATE_2.log <
connect catalog ;
resync
catalog;
run{
allocate channel c1 type disk ;
crosscheck backupset of
archivelog all ;
backup filesperset 3 format
'$BACKUP_PATH/data/$DATE/arch.%d.live.$LEVEL.%t'(archivelog from time
'sysdate-7' all delete input) ;
delete noprompt expired backupset of
archivelog all ;
release channel c1 ;
}
run{
allocate channel c2 type disk ;
crosscheck backupset of database
;
backup incremental level $LEVEL filesperset 3 format
'$BACKUP_PATH/data/$DATE/data.%d.live.$LEVEL.%t'(database include current
controlfile) ;
delete noprompt expired backupset of database ;
delete
noprompt obsolete ;
release channel c2 ;
}
exit;
EOF
else
$BIN/rman log $BACKUP_PATH/log/level.$TARGET_SID.$LEVEL.$DATE_2.log
<
connect catalog ;
resync
catalog;
run{
allocate channel c1 type disk ;
crosscheck backupset of
archivelog all ;
backup filesperset 3 format
'$BACKUP_PATH/data/$DATE/arch.%d.live.$LEVEL.%t' (archivelog from time
'sysdate-1' all) ;
delete noprompt expired backupset of archivelog all
;
release channel c1 ;
}
run{
allocate channel c2 type disk ;
crosscheck backupset of database
;
backup incremental level $LEVEL filesperset 3 format
'$BACKUP_PATH/data/$DATE/data.%d.live.$LEVEL.%t' (database include current
controlfile) ;
delete noprompt expired backupset of database ;
delete
noprompt obsolete ;
release channel c2 ;
}
exit;
EOF
fi
$BIN/exp
file=$BACKUP_PATH/data/$DATE/live.rman.$DATE_2.dmp
log=$BACKUP_PATH/log/$RMAN_SID.rman.$DATE_2.log
echo
"------------------------------end------------------------------";date
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/196700/viewspace-713581/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- rman 備份指令碼指令碼
- rman 增量備份恢復
- 分享Oracle Rman的備份指令碼Oracle指令碼
- windows 全量+增量備份指令碼batWindows指令碼BAT
- oracle10g RMAN增量備份策略Oracle
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- dg丟失歸檔,使用rman增量備份恢復
- 【RMAN】RMAN的備份保留策略
- [20221028]rman使用tape與增量備份測試2.txt
- 備份指令碼指令碼
- RMAN的備份原理
- 【RMAN】RMAN備份至ASMASM
- 【RMAN】同時建立多個備份(建立多重備份)
- 使用RMAN增量備份處理Dataguard因歸檔丟失造成的gap
- EXP增量備份
- Xtrabackup增量備份
- RMAN備份概述
- mysql備份指令碼MySql指令碼
- ORACLE備份指令碼Oracle指令碼
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- [20221020]奇怪的增量備份.txt
- RMAN備份進度
- 自動備份指令碼指令碼
- windows mysqldump備份指令碼WindowsMySql指令碼
- RMAN 備份相關的概念
- ORACLE NBU調取oracle rman指令碼備份歸檔不自動刪除歸檔Oracle指令碼
- MySQL 定時增量備份MySql
- oracle資料庫備份之exp增量備份Oracle資料庫
- Oracle RMAN備份實戰Oracle
- Oracle OCP(60):RMAN 備份Oracle
- RMAN備份恢復技巧
- 【rman備份策略】實驗
- RMAN加密備份的三種方式加密
- expdp 邏輯備份指令碼指令碼
- 資料庫備份指令碼資料庫指令碼
- 兩套mysql備份指令碼MySql指令碼
- 檢查備份情況的指令碼指令碼
- RMAN增量恢復
- 【備份】RMAN中對控制檔案的幾種備份方法