在主备库上统一的Rman备份脚本

crontab配置如下:

0 3 * * 3,7 sh /home/oracle/shell/rman_mytest.sh >/home/oracle/shell/log/rman_mytest_`date +\%Y\%m\%d-\%H-\%M-\%S`.log 2>&1

rman_mytest.sh脚本如下:

#!/bin/bash
. ~/.bash_profile

export ORACLE_SID=mytest
export BACKUP_HOME='/oracle/backup_rman';
export DATABASE_ROLE_LOG='/tmp/des_temp.log';
export DATABASE_ROLE='';

sqlplus -S "/as sysdba" >$DATABASE_ROLE_LOG  <set feedback off
set head off
select  DATABASE_ROLE from v\$database;
exit
EOF

DATABASE_ROLE="`cat $DATABASE_ROLE_LOG |sed  '/^$/d'`";

if [ "$DATABASE_ROLE" == "PRIMARY" ]; then
   echo "################BACKUP THE $DATABASE_ROLE DATABASE################";

rman target / <run{
CONFIGURE RETENTION POLICY TO REDUNDANCY 4;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '$BACKUP_HOME/%F.ctl';
allocate channel v1 type disk;
allocate channel v2 type disk;
crosscheck copy;
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired copy;
delete noprompt expired backup;
delete noprompt expired archivelog all;
delete noprompt obsolete;
backup database format '$BACKUP_HOME/%d_full_%s_%p_%c_%T.bak';
backup current controlfile format '$BACKUP_HOME/%d_control_%s_%c_%p_%T.ctl';
backup archivelog all format '$BACKUP_HOME/%d_arch_%s_%c_%p_%T.bak';
release channel v1;
release channel v2;}
exit;
EOF

elif [ "$DATABASE_ROLE" == "PHYSICAL STANDBY" ]; then
   echo "################BACKUP THE $DATABASE_ROLE DATABASE################";

sqlplus "/as sysdba" <recover managed standby database cancel;
exit;
EOF

rman target / <run{
CONFIGURE CONTROLFILE AUTOBACKUP on;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '$BACKUP_HOME/%F.ctl';
allocate channel v1 type disk;
allocate channel v2 type disk;
crosscheck copy;
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired copy;
delete noprompt expired backup;
delete noprompt expired archivelog all;
delete noprompt obsolete;
backup database format '$BACKUP_HOME/%d_full_%s_%p_%c_%T.bak';
backup current controlfile format '$BACKUP_HOME/%d_control_%s_%c_%p_%T.ctl';
backup archivelog all format '$BACKUP_HOME/%d_arch_%s_%c_%p_%T.bak';
release channel v1;
release channel v2;}
exit;
EOF

sqlplus "/as sysdba" <recover managed standby database disconnect;
exit;
EOF

else
   echo "ORA-################";
fi;

find /home/oracle/shell/log -name "rman_$ORACLE_SID_*log" -mtime +30 -print -exec rm {} \;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11134237/viewspace-692222/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11134237/viewspace-692222/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值