设为首页 收藏本站
查看: 816|回复: 0

[经验分享] oracle自动备份并删除以前备份文件批处理

[复制链接]

尚未签到

发表于 2016-7-24 09:29:53 | 显示全部楼层 |阅读模式
  从网上找了些资料,整理了下oracle的自动备份批处理,将以下的代码保存为.bat即可,再配合windows的计划任务可实现自动备份数据库并压缩功能,并指定删除7天前的备份文件(修改delDays参数)。在windows 2003/2008环境下,利用其forfiles工具进行辅助删除功能。   希望对大家有用!

@ echo ------ORACLE自动备份开始...  Zhang Junming制作 @2012-----------
REM ======================================================
REM 备份服务器  SZYY系统的数据
REM ======================================================
@ echo off
set BACKUP_DIR=e:\DATABACKUP
set BACKUP_WAREHOUSE=e:\DATABACKUP\DATABACKUP_LOG_DMP
set ORACLE_USERNAME=zjm
set ORACLE_PASSWORD=zjm123
set ORACLE_DB=orcl
set IP=192.168.5.100
set RAR_CMD="C:\Program Files\WinRAR\WinRAR.exe"
set delDays=7
if not exist "DATABACKUP"             md DATABACKUP
if not exist "DATABACKUP\DATABACKUP_LOG_DMP\"  md DATABACKUP\DATABACKUP_LOG_DMP\
for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a
REM 如果文件名中需要小时及分钟,用下面第一行语句
REM set BACK_NAME=%ORACLE_DB%_%ORACLE_USERNAME%_%TODAY%(%time:~0,2%时%time:~3,2%分%time:~6,2%秒)
REM set BACK_NAME=%ORACLE_DB%_%ORACLE_USERNAME%_%TODAY%
REM set BACK_NAME=%ORACLE_DB%_%TODAY%_%time:~0,2%时%time:~3,2%分%time:~6,2%秒
set BACK_NAME=%ORACLE_DB%_%TODAY%
set BACK_FULL_NAME=%BACKUP_DIR%\%BACK_NAME%

REM 将操作记入批处理日志 %BACK_FULL_NAME%_bat.log
echo ==================备份服务器 SZYY的数据================= >>%BACK_FULL_NAME%_bat.log
echo 备份开始...... >>%BACK_FULL_NAME%_bat.log
echo 开始的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log

REM 调用exp工具
rem %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%IP%/%ORACLE_DB% grants=Y
exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%IP%/%ORACLE_DB% grants=Y  file="%BACK_FULL_NAME%.dmp"
rem  log="%BACK_FULL_NAME%_exp.log"
if not exist %BACKUP_WAREHOUSE%\DMP  md %BACKUP_WAREHOUSE%\DMP
echo 压缩并删除原有dmp文件...... >>%BACK_FULL_NAME%_bat.log
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
%RAR_CMD% a -df "%BACK_FULL_NAME%_dmp.rar" "%BACK_FULL_NAME%.dmp"
echo rar压缩==> %BACK_FULL_NAME%_dmp.rar>>%BACK_FULL_NAME%_bat.log
REM "%BACK_FULL_NAME%exp.log"
echo 压缩并删除原有dmp文件结束! >>%BACK_FULL_NAME%_bat.log
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
echo 开始移动压缩后的备份文件...... >>%BACK_FULL_NAME%_bat.log
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
move %BACKUP_DIR%\*.rar %BACKUP_WAREHOUSE%\DMP\
echo 当前的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
REM net send %userdomain% "数据库逻辑备份已于:%DATE% %time% 完成!"
echo .
echo 备份完成!!! >>%BACK_FULL_NAME%_bat.log
echo 完成的时间是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
echo ===============备份服务器 SZYY的数据完成!!!============== >>%BACK_FULL_NAME%_bat.log

if not exist %BACKUP_WAREHOUSE%\%BACK_NAME%_LOG md %BACKUP_WAREHOUSE%\LOG
move %BACKUP_DIR%\*.log %BACKUP_WAREHOUSE%\LOG\
rem 删除七天前的rar备份文件
forfiles /p %BACKUP_WAREHOUSE%\DMP /s /m *.rar /d -%delDays% /c "cmd /c del @file"
echo .
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-248500-1-1.html 上篇帖子: 从mysql转换到oracle数据库(第一刀) 下篇帖子: Oracle Data Guard (RAC+DG) 归档删除策略及脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表