Oracle数据库定时增量备份脚本

创建一个目录放备份脚本

mkdir rman_scripts

创建RMAN删除脚本

vim delete_rman.dat

  键入以下内容:

ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk;
run{
 allocate channel d1 device type disk;
 allocate channel d2 device type disk;
 delete obsolete recovery window of 7days;
 release channel d1;
 release channel d2;
}

  保存退出

创建RMAN备份脚本

vim rman_full.sh

  键入以下内容:

  注意修改环境变量、备份位置及tag的部分

#!/bin/bash
 
#设置环境变量
ORACLE_SID=limsdb
ORACLE_BASE=/u01/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
PATH=$PATH:$ORACLE_HOME/bin
RMAN_LOG=/u01/backup/logs/bpmdb_fullbk_`date +"%Y.%m.%d_%H.%M.%S"`.log
export ORACLE_SID ORACLE_BASE ORACLE_HOME PATH RMAN_LOG

#输出Rman备份开始时间到日志
START_DATE=`date +"%Y-%m-%d %H:%M:%S"`
echo Rman备份开始_当前时间: $START_DATE>$RMAN_LOG

#执行Rman备份
#su - oraps -c"
rman target / msglog=$RMAN_LOG append< 
run {
allocate channel ch00 type disk;
allocate channel ch01 type disk;
crosscheck archivelog all;
delete noprompt expired archivelog all;
backup incremental level=0 database format='/u01/backup/rman/orcl_incr0_%T_%t_%U'tag='lims_lev0';
sql'alter system archive log current';
backup archivelog all tag='lims_arc_bak'format='/u01/backup/rman/orcl_arch_%T_%t_%U'delete input;
backup current controlfile tag='lims_ctlfile'format='/u01/backup/rman/ctl_file_%T_%t_%U';
backup spfile tag='lims_spfile'format='/u01/backup/rman/spfile_%U_%T';
crosscheck backupset;
delete noprompt expired backup;
delete noprompt obsolete;
release channel ch00;
release channel ch01;
}
EOF

#输出Rman备份结束时间到日志
echo Rman备份结束_当前时间: `date +"%Y-%m-%d %H:%M:%S"`>>$RMAN_LOG

#根据日志输出内容检索错误信息
strRet=''
strRet=`awk'/ERROR MESSAGE/'$RMAN_LOG`

if [ -z"$strRet"] ;
then
echo SUCCESS!>>$RMAN_LOG
exit 0 ;
else
echo ERROR!>>$RMAN_LOG
exit 1 ;
fi

  保存退出

利用crontab创建定时任务

  没有crontab就安一个,在此不再赘述

  查看定时任务列表

crontab -l

  编辑定时任务列表

crontab -e

  键入以下内容:

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

#backup of database
30 0 * * * /home/oracle/rman_scripts/rman_full.sh>/dev/null 2>/home/oracle/rman_scripts/error.log

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值