TSM对Oracle数据库备份脚本

 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;
==========================================================================

你可能感兴趣的:(oracle,数据库备份)