Windows环境下Oracle数据库的定时自动备份并打包

1、首先在D盘创建一个文件夹命名为dbbackup

2、在文件夹下创建一个bat文件命名为dbbackup.bat

 3、在bat文件编写以下内容

 

@echo off   

echo ================================================   

echo  Windows环境下Oracle数据库的自动备份脚本  

echo  1. 使用当前日期命名备份文件。  

echo  2. 自动删除15天前的备份。  

echo ================================================  

::以“YYYYMMDDHHMMSS”格式取出当前时间。

::注意:如果TIME 是00点的时候,电脑显示的是0不是00所以%time:~0,2%就会报错(LRM-00112: 参数 'log' 不允许有多个值)

::所以用%time:~0,2%%time:~3,2%%time:~6,2%(运行脚本的时间一定是在10-23点区间,否则0-9(H)脚本调用函数错误,无法运行)

::如果要用%time:~1,1%%time:~3,2%%time:~6,2% (建议运行脚本的时间在0-9点这个区间,如果是>9点,比如13点。会造成只显示个位数字3,从而影响时间的整体准确性)

 

set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%

::创建备份目录。  

if not exist "D:\dbbackup\data"    mkdir D:\dbbackup\data  

if not exist "D:\dbbackup\log"     mkdir D:\dbbackup\log  

set DATADIR=D:\dbbackup\data

set LOGDIR=D:\dbbackup\log


::导出数据和日志


exp userid='scott/123456@orcl'  file=%DATADIR%\data_%BACKUPDATE%.dmp log=%LOGDIR%\log_%BACKUPDATE%.log  

::压缩打包 (电脑需要先安装好WinRAR)

"C:/Program Files/WinRAR/rar.exe" a %DATADIR%\data_%BACKUPDATE%.rar %DATADIR%\data_%BACKUPDATE%.*

"C:/Program Files/WinRAR/rar.exe" a %LOGDIR%\log_%BACKUPDATE%.rar %LOGDIR%\log_%BACKUPDATE%.*


::打包完成删除原文件


del %DATADIR%\data_%BACKUPDATE%.dmp

del %LOGDIR%\log_%BACKUPDATE%.log

::删除15天前的备份。

forfiles /p "%DATADIR%" /s /m *.* /d -15 /c "cmd /c del @path"  

forfiles /p "%LOGDIR%" /s /m *.* /d -15 /c "cmd /c del @path"

4、添加任务计划程序定时执行备份

1)点击搜索,输入任务计划程序,点击打开

        

2)点击创建任务,常规项里填写名称,触发器项里按需求新建触发器,操作项添加Bat文件路径,条件项和设置项都按需求选择,最后点击确定即可

 

 

 

 

    

 

  5

 

5、最后执行效果如下:

 

 

 

 参考:https://blog.csdn.net/CoolCST/article/details/102782824

    https://blog.csdn.net/weixin_34415923/article/details/92987973

posted @ 2020-12-30 10:17  有忆  阅读(836)  评论(0编辑  收藏  举报