TSM for Oracle備份指令碼及策略說明

timequan發表於2016-05-20
    TSM在實現對Oracle資料庫的備份時,實際上是呼叫RMAN工具來完成的,為了使後期備份檢查更加方便,在此介紹下我經常使用的一些方式:
1.編寫bak_full.sh指令碼檔案,主要為針對Oracle資料庫的0級備份
2.編寫schedule_full.sh指令碼檔案,該檔案直接在TSM中呼叫執行(每週六)
3.編寫bak_incr.sh指令碼檔案,主要為針對Oracle資料庫的1級備份
4.編寫schedule_incr.sh指令碼檔案,該指令碼直接在TSM中呼叫執行(每週一至週五)
5.所有的備份指令碼放置於/home/oracle/tsm_script目錄下 (以AIX環境為例)
6.另外生成的日誌放置於/home/oracle/tsm_script/baklog目錄下(產生的日誌檔案打上時間戳)
7.定期檢測和刪除磁帶中的RMAN過期備份版本,以實現空間回收(每月一次)

指令碼檔案資訊:

bak_full.sh內容:
=========================================================================
connect catalog rman/rman@rmanlog
connect target / 
run {
allocate channel t1 type sbt;
allocate channel t2 type sbt;
send 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
backup incremental level 0 
format 'orcl_full_%T_%t_%U'database;
sql 'alter system archive log current';
backup format 'orcl_arhc_%T_%t_%U' archivelog all delete all input;
release channel t1;
release channel t2;
}
=========================================================================

schedule_full.sh內容:
=========================================================================
CMDFILE=/home/oracle/tsm_script/bak_full.sh
LOGFILE=/home/oracle/tsm_script/baklog/full_baklog_`date +%y%m%d`.log
rman cmdfile $CMDFILE msglog $LOGFILE
=========================================================================

bak_incr.sh內容:
=========================================================================
connect catalog rman/rman@rmanlog
connect target / 
run {
allocate channel t1 type sbt;
allocate channel t2 type sbt;
send 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
backup incremental level 1
format 'orcl_incr_%T_%t_%U'database;
sql 'alter system archive log current';
backup format 'orcl_arhc_%T_%t_%U' archivelog all delete all input;
release channel t1;
release channel t2;
}
==========================================================================

schedule_incr.sh內容:
==========================================================================
CMDFILE=/home/oracle/tsm_script/bak_incr.sh
LOGFILE=/home/oracle/tsm_script/baklog/incr_baklog_`date +%y%m%d`.log
rman cmdfile $CMDFILE msglog $LOGFILE
==========================================================================

說明:生成的日誌檔案自動打上(年份+月份+日期),在實現方面:
AIX環境下為XXXX_baklog_`date +%y%m%d`.log
Windows環境下為XXXX_baklog_%date:~4,6%.log


另外如要定期回收磁帶空間,還需要設定RMAN的過期版本刪除指令碼
bak_maintenance.sh內容:
==========================================================================
connect catalog rman/rman@rmanlog
connect target / 
allocate channel for maintenance type sbt;
send 'ENV=(TDPO_OPTFILE=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)';
report obsolete;
delete noprompt obsolete;
release channel;
==========================================================================

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

相關文章