日期:2014-05-16  浏览次数:20393 次

本地每天定时备份数据库

由于测试数据库服务器环境不太稳定,可能会断电。因此需要在本地每天定时备份下数据库。由于在windows环境,所以研究了下批处理编程,写了个小备份批处理。同时设置了计划任务,每天会定时运行bat进行数据库备份。以下是批处理代码,直接新建个txt,内容如下:

@echo off 
set txt1=%date:~0,4% 
::当前年 
set txt2=%date:~5,2% 
::当前月 
set txt3=%date:~8,2% 
::当前日 
set txt4=%time:~0,2% 
::当前小时 
set txt5=%time:~3,2% 
::当前分钟 
set txt6=%time:~6,2% 
set day=%txt3: =%
set date=%txt1%%txt2%%day%
set time=%txt4%%txt5%%txt6%
set name=%date: =-%
echo -------------------------------------------------- 
echo -------------正在执行oracle数据库备份-------------- 
echo -------------------------------------------------- 
echo ... 
echo ... 
echo 导出oracle数据... 
if exist %name%.dmp del %name%.dmp 
E:\oracle\product\10.2.0\client_1\bin\exp 数据库用户名/数据库密码@orcl file=F:\backup\%name%.dmp 
echo ... 
echo ... 
echo 备份完成! 
exit

?这里的

set day=%txt3: =%

是去掉后面的空格,而

set name=%date: =-%

是为了替换所有的空格为“-”。这样生成的名字就会是2011-09-15.dmp这样的形式。exp指令是oracle数据库的导出指令,比如exp admin/12345@orcl file=F:/demo.dmp表示导出数据库用户为admin,密码为12345,数据库实例为orcl的数据库,存储文件为F盘的demo.dmp。

????? 然后给这个批处理加上计划任务。可以用at指令,如果不太熟悉的话,可以直接用windows自带的计划任务来设置。

本人win7系统,路径是“开始”---“所有程序”---“附件”---“系统工具”---“任务计划程序”。然后点击“创建任务”,然后设置相应内容。

?

?

?

?

?

OK了,现在可以在每天下午的4点自动执行批处理进行备份了。。。

?

?

1 楼 liuzidong 2011-09-15  
不错,收下了呀!
2 楼 hzl7652 2011-09-15  
,真正的oracle备份都是rman血仇的。
3 楼 relic6 2011-09-15  
hzl7652 写道
,真正的oracle备份都是rman血仇的。

多谢回复,又学了个新的备份方法。。而且还功能全面些。