RMAN自动备份脚本一例


1、Oracle定时任务:

crontab -e

* * * * * /home/oracle/workspace/scripts/bk_main.sh>> /home/oracle/workspace/log/bk_err.log 2>&1

2、主控制程序

/home/oracle/workspace/scripts/bk_main.sh

#!/bin/bash

 

dat=`date +'%M'`

 

if (($dat==0))

then

 /home/oracle/workspace/scripts/bk_.sh 0

elif (($dat%50==0))

then

 /home/oracle/workspace/scripts/bk_.sh 2

elif (($dat%40==0))

then

 /home/oracle/workspace/scripts/bk_.sh 2

elif (($dat%30==0))

then

 /home/oracle/workspace/scripts/bk_.sh 1

elif (($dat%20==0))

then

 /home/oracle/workspace/scripts/bk_.sh 2

elif (($dat%10==0))

then

 /home/oracle/workspace/scripts/bk_.sh 2

fi

3、详细备份脚本

小说明:`date +'%Y%m%d%k%M' | awk '{print $1$2}'` 为当前时间的yyyymmddhh24mi格式

/home/oracle/workspace/scripts/bk_.sh

#!/bin/bash

#This is a import statement.

PATH=$PATH:$HOME/bin

 

export PATH

export ORACLE_SID=dex

export ORACLE_BASE=/u01/apps/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11gr2/db_1

export PATH=$ORACLE_HOME/bin:$PATH

#use awk to cut the space char

timst=`date +'%Y%m%d%k%M' | awk '{print $1$2}'`

#Use for debug

#echo $timst

#Create a directory like 201112140112

mkdir /u01/backup/DEX/backups/$timst

#Rman backup scripts

rman target sys/xiaojun@dex log=/home/oracle/workspace/log/rmanlog/rman_$timst<<EOF

run{

allocate channel dev1 type disk ;

allocate channel dev2 type disk ;

backup incremental level 1 database format '/u01/backup/DEX/backups/$timst/bk_%t_%s' plus archivelog format'/u01/backup/DEX/backups/$timst/arc_%t_%s' delete all input ;

crosscheck backup ;

delete noprompt obsolete ;

delete noprompt expired backup;

}

EOF


不要忘记建立相应的目录。

相关内容