您的位置:首页 > 数据库 > Oracle

windows下oracle每天定时备份

2017-01-08 23:01 211 查看
最近一个同事修改 表结构的时候不小心删了几张表,虽然恢复部分数据,但是有个表的数据已经找不回了,

因为之前数据库没有做备份,所以今天花了半天时间做了个逻辑备份,整体的思路如下:首先写好exp语句做成bat文件,然后用windows计划任务去执行

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

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

@echo off

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

forfiles /p “D:\oraclebackup” /m *.dmp /d -10 /c “cmd /c del @path”

forfiles /p “D:\oraclebackup” /m *.log /d -10 /c “cmd /c del @path”

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

expsystem/oracle@orclfile=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

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 ,

注意,当时 我是这样加的tables=(system.XXX%),结果bat文件不能执行,原来bat’文件里面的%必须要是%%,这个问题我搞了很久才搞清楚~~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: