Oracle自动RMAN备份windows版

exp备份脚本-linux版:
注意 exp语句空格只能有1个,连续空格需要删除多余

#!/bin/sh


export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=jisen
PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
#define variable....
backup_date=`date +%Y%m%d`
bak_home=/u01
backup_dest=/backup/date
backup_log=/backup/log
RECIPT='jisen@mail.com'


# Check local disk space..................................
USED=` df -k|grep $bak_home|awk '{print $5}'|awk -F% '{print $1}'`
if [ $USED -gt 85 ]; then
       echo "Disk space is full\243\254please check it"|mail -s "exp full backup failed"  $RECIPT
       exit 1
fi
#starting exp backup.....
exp system/ORAIDA full=y buffer=65536   file=$backup_dest/data_$backup_date.dmp  log=$backup_log/data_$backup_date.log
# delete expired  backup ...
list=` find $backup_dest -mtime +7`
echo $list
rm -f $list
if [ $? -ne 0 ]; then
       cat $backup_log/data_$backup_date.log|mail -s "exp full backup failed,please check it"  $RECIPT
       exit 1
fi
cat $backup_log/data_$backup_date.log|mail -s "$backup_date exp log "  $RECIPT

rman备份脚本fullbak.sql:

run {
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
backup full tag 'yangs' database include current controlfile format 'd:\orclbak\backup\full_%d_%T_%s' plus archivelog format 'd:\orclbak\backup\arch_%d_%T_%s' delete all input;
delete noprompt obsolete;
}

自动执行上述脚本的bat文件

d:
cd D:\orclbak\script
rman target / msglog d:\orclbak\log\%date:~0,4%%date:~5,2%%date:~8,2%.log cmdfile=D:\orclbak\script\fullbak.sql

设置计划任务

开始 -->管理工具 -->任务计划 -->创建基本任务
将bat文件添加到任务计划中即可。

补充说明:

文件名中的日期:

log日志文件采用的是DOS的date命令:


image.png
echo %date:~0,4%%date:~5,2%%date:~8,2%

RMAN备份文件采用的是Oracle提供的格式化功能:

%c 备份片的拷贝数 
%d 数据库名称 
%D 位于该月中的第几天 (DD) 
%M 位于该年中的第几月 (MM) 
%F 一个基于DBID唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列 
%n 数据库名称,向右填补到最大八个字符 
%u 一个八个字符的名称代表备份集与创建时间 
%p 该备份集中的备份片号,从1开始到创建的文件数 
%U 一个唯一的文件名,代表%u_%p_%c 
%s 备份集的号 
%t 备份集时间戳 
%T 年月日格式(YYYYMMDD)

备份命令

RMAN提供几个备份命令可以方便的备份数据库

全库备份,并且备份归档日志:
backup full tag 'yangs' database include current controlfile format 'd:\orclbak\backup\full_%d_%T_%s' plus archivelog format 'd:\orclbak\backup\arch_%d_%T_%s' delete all input;

备份冗余策略:保留2份备份集:

CONFIGURE RETENTION POLICY TO REDUNDANCY 2;

删除不再需要的备份集

delete noprompt obsolete;

备份集是否obsolete由冗余策略决定。

归档日志备份脚本archback.sql:

run {
  backup archivelog all format ’d:\backup\eyglearch_%d_%T_%s’ delete all input;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容