oracle rman全备脚本,rman 全备份脚本

这是一个Oracle数据库的RMAN全量备份脚本,配置了保留策略为冗余1,并在备份完成后清理15天前的归档日志。脚本创建了目录结构,分配了多个通道进行备份,并将备份文件存储在指定目录,同时备份了控制文件和SPFILE。

#$RMAN_HOME/script/rman_full0.sh

#CONFIGURE RETENTION POLICY TO REDUNDANCY 1;  --According to you space

#-----------------------script env-----------------------

. /home/oracle/.bash_profile

RMAN_HOME=/backup/rman     #set according to your backup  directory

LOGFILE=$RMAN_HOME/log/rman_full0.log

#ONEDAY=`date +%Y%m%d`

ONEDAY=`date +%Y%m%d%H%M`

ONEDAYDIR=$RMAN_HOME/$ONEDAY

ONEDAYDATA=$ONEDAYDIR/data

ONEDAYARCH=$ONEDAYDIR/archlog

ONEDAYCTLF=$ONEDAYDIR/ctlfile

ONEDAYLOG=$ONEDAYDIR/log

ONEDAYSPFILE=$ONEDAYDIR/spfile

#---check ONEDAYDIR, if no then create them---------

if [ ! -d ${ONEDAYDIR} ];

then mkdir ${ONEDAYDIR}

fi

if [ ! -d ${ONEDAYLOG} ];

then mkdir ${ONEDAYLOG}

fi

if [ ! -d ${ONEDAYDATA} ];

then mkdir ${ONEDAYDATA}

fi

if [ ! -d ${ONEDAYARCH} ];

then mkdir ${ONEDAYARCH}

fi

if [ ! -d ${ONEDAYCTLF} ];

then mkdir ${ONEDAYCTLF}

fi

if [ ! -d ${ONEDAYSPFILE} ];

then mkdir ${ONEDAYSPFILE}

fi

#rman backup full database log

LOGDATE=`date +%Y-%m-%d-%H-%M`

RMANLOG=$ONEDAYDIR/log/${LOGDATE}.log

#---check the logfile, if no then create them---------

if [ ! -f ${LOGFILE} ];

then touch ${LOGFILE}

fi

if [ ! -f ${RMANLOG} ];

then touch ${RMANLOG}

fi

#-------------start backup-----------------

echo "-------------------------Rman full backup -------------------------" >> ${LOGFILE}

echo "backup start time:" `date +%Y-%m-%d_%H:%M:%S` >> ${LOGFILE}

echo "----------------------Rman Database backup ------------"`date +%Y-%m-%d_%H:%M:%S` >>${RMANLOG}

$ORACLE_HOME/bin/rman nocatalog target sys/oracle <> ${RMANLOG}

run

{

delete noprompt obsolete;

allocate channel c1 type disk MAXPIECESIZE 5g;

allocate channel c2 type disk MAXPIECESIZE 5g;

allocate channel c3 type disk MAXPIECESIZE 5g;

allocate channel c4 type disk MAXPIECESIZE 5g;

backup as compressed backupset incremental level 0 database tag 'full0backup' filesperset 3 format '$ONEDAYDIR/data/db_full0_%T_%d_%t_%s_%p.rbck' include current controlfile;

backup AS COMPRESSED BACKUPSET format '$ONEDAYDIR/archlog/arch_full0_%T_%d_%t_%s_%p.rbck' archivelog all;

delete noprompt archivelog all completed before 'sysdate-15';

backup current controlfile format '$ONEDAYDIR/ctlfile/ctl_%d_%T_%s_%p_%t.rbck';

backup spfile  format='$ONEDAYDIR/spfile/spfile_%d_%I_%U_%T.bak' tag='bk_spfile';

release channel c1;

release channel c2;

release channel c3;

release channel c4;

}

exit;

EOF

echo "backup finish! check in :" ${RMANLOG} >> ${LOGFILE}

echo "backup end time:" `date +%Y-%m-%d_%H:%M:%S` >> ${LOGFILE}

echo "-------------------------------end-----------------------------------" >> ${LOGFILE}

#end of file

cat celar_arch.sh

#!/bin/sh

. /home/oracle/.bash_profile

export BACK_DATE=`date +%Y%m%d`

export BACKUP_PATH=/home/oracle/clear_arch

echo `mkdir -p ${BACKUP_PATH}/log/${BACK_DATE}`

$ORACLE_HOME/bin/rman msglog=$BACKUP_PATH/log/${BACK_DATE}/clear_arch_$BACK_DATE.log << EOF

connect target /;

crosscheck archivelog all;

delete noprompt expired archivelog all;

delete noprompt archivelog until time 'sysdate-15';

exit;

EOF

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值