存储 频道

征文:TSM备份Oracle脚本及策略说明

  【IT168 资讯】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;
==========================================================================

0
相关文章