Oracle rman 自动备份脚本

来源:互联网 发布:积分商城数据库设计 编辑:程序博客网 时间:2024/05/27 16:40

oracle 备份脚本整理

1.fullbackup.sql 具体如下:

run{
   allocate channel d1 type disk;
   backup filesperset 10 full format '/home/oracle/backup/orcl/fullback/FULLBAK_%d_%T_%s_%p' tag db_full_bak database;
   sql 'alter system archive log current';
   backup filesperset 50 archivelog all delete all input tag arch_bak format '/home/oracle/backup/orcl/archivelog/ARCHBAK_%d_%T_%s_%p';
   backup  format '/home/oracle/backup/ctlbackup/CTLBAK_%d_%T_%s_%p' tag ctl_bak current controlfile;
   backup  format '/home/oracle/backup/ctlbackup/INITBAK_%d_%T_%s_%p' tag initpara_bak spfile;
   release channel d1;
    }


2.archbackup.sql 具体如下

run{
  backup archivelog all format '/home/oracle/backup/orcl/archivelog/ARCHBAK_%d_%T_%s' tag arch_bak delete all input;
   }


3.startrman.sh

#------------------------------------------------------------------------------------------------------------
#Environment variable setting
#------------------------------------------------------------------------------------------------------------
source /home/oracle/.bash_profile
ORACLE_SID=orcl
export ORACLE_SID
SH_HOME=/home/oracle/backup/orcl
export SH_HOME
 
DATE=`date +"%Y%m%d"`
week=`date +"%w"`
rmanerror=$SH_HOME/scripts/rmanerror.log
 
#-----------------------------------------------------------------------
#Confirm whether the oracle is runing
#-----------------------------------------------------------------------
sqlplus -s  "/as sysdba"<<EOF
whenever sqlerror exit 1
whenever oserror exit 1
select sysdate from dual;
exit
EOF
 
if [ $? -gt 0 ]; then
exit
fi
 
#-----------------------------------------------------------------------
#Begin to backup
#-----------------------------------------------------------------------
   if [ $week = "6" ] ; then
      rman target / @$SH_HOME/scripts/fullbackup.sql log=$SH_HOME/log/rmanfullback`date +"%Y%m%d"`.log
   else
      rman target / @$SH_HOME/scripts/archbackup.sql log=$SH_HOME/logs/rmanarchback`date +"%Y%m%d"`.log
   fi

4.设置自动备份

crontab -e

0 0 * * * /home/oracle/backup/orcl/scripts/startrman.sh


原创粉丝点击