用脚本 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; ![]() 文件: TSM备份需要的脚本.rar 大小: 3KB 下载: 下载 |
|