首页 > 代码库 > 定时备份oracle(Windows)

定时备份oracle(Windows)

第一步:建立备份脚本oraclebackup.bat

 

首先建立一个备份bat文件,在D盘下新建备份目录oraclebackup,将Oracle安装目录下的EXP.EXE复制到此目录下,再新建一个文本文件oraclebackup.txt,内容如下:

@echo off 
@echo 删除10天前的备分文件和日志

forfiles /p "D:\oraclebackup" /m *.rar /d -10 /c "cmd /c del @path"

Set FileDir=E:\AppsData\Works\OrclBackUp\BTMS 
Set SysDate=%date:~0,4%-%date:~5,2%-%date:~8,2%.%time:~0,2%%time:~3,2% 
Set FileName=%ExpUser%~%OrclSid%_%SysDate%

@echo 正在备份 Oracle 数据库,请稍等…… 

expsystem/oracle@orclfile=D:/oraclebackup/mdb%FileName%.dmp log=D:/oraclebackup/mdb%FileName%.log full=y feedback=10000 buffer=65535 
@echo 任务完成!

@echo 开始压缩数据库备份... 

"D:\Apps\Tools\WinRAR\Rar.exe" a %FileName%.rar %FileName%.dmp 
"D:\Apps\Tools\WinRAR\Rar.exe" a %FileName%.rar %FileName%.log 
@echo 数据库备份压缩完成!

完成后,将该记事本的后缀txt改成bat即可。

双击oraclebackup.bat可以测试是否可以正常备份。

第二步:新建windows计划任务

进入windows的控制面板,打开计划与任务,新建任务,点击浏览,选择刚才新建的d盘oraclebackup目录下的oraclebackup.bat文件。接着选择每天晚上22:00点执行,再输入本机的administrator密码即可。

备注:这里我记录下,我遇到的问题,主要是因为我一个用户里面有很多表,但是现在我不需要全部备份,只需要备份XXX打头的表,

 

OK,修改exp语句exp system/oracle@orcl tables=(system.XXX%%)file=D:/oraclebackup/mdb%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:/oraclebackup/mdb%date:~0,4%%date:~5,2%%date:~8,2%.log full=y buffer=65535 ,

注意:bat文件里面的%必须要是%%!

定时备份oracle(Windows)