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