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

window 自动备份oracle数据库并上传到ftp

将下面代码复制后,新建backup.bat文件。

rem ***********备份数据**************

echo =========================================================== >> backup.log
echo 开始数据库备份 时间 : %date% %time%  >> backup.log



rem 备份 数据库 2

exp vehes_admin/oracle@orcl92 file=d:\backup\dbbak\vehes_%date:~0,10%.dmp log=d:\backup\dbbak\vehes_%date:~0,10%.log compress=n buffer=8092 consistent=y direct=n constraints=y feedback=10000  grants=y record=y indexes=y triggers=y rows=y


rem ********压缩 数据库备份*************

rem 压缩 VEHES 数据库备份

C:\progra~1\winrar\winrar.exe a -ibck d:\backup\rarbak\vehes_%date:~0,10%.rar d:\backup\dbbak\vehes_%date:~0,10%.dmp d:\backup\dbbak\vehes_%date:~0,10%.log    >> backup.log


rem *********删除 数据临时备份文件*************


del /f d:\backup\dbbak\vehes_%date:~0,10%.dmp

del /f d:\backup\dbbak\vehes_%date:~0,10%.log


echo 结束数据库备份 时间 : %date% %time%    >> backup.log


rem 得到前7天的日期

echo wscript.echo dateadd("d",-7,date) >%tmp%\tmp.vbs   

for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i

for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set m=%%j

for /f "tokens=1,2,3 delims=/- " %%i in ('cscript /nologo %tmp%\tmp.vbs') do set d=%%k

if %m% LSS 9 set m=0%m%

if %d% LSS 9 set d=0%d%

set deldate=%y%-%m%-%d%
 
rem 删除7天前程序备份

echo 开始删除 d:\backup\rarbak\*_%deldate%.rar at : %date% %time%  >> backup.log

del /f d:\backup\rarbak\*_%deldate%.rar

echo 结束删除 d:\backup\rarbak\*_%deldate%.rar at : %date% %time%  >> backup.log


rem 开始使用ftp客户端连接 ,并执行脚本

@echo off

echo open 127.0.0.1 >> backup_ftp.log

echo xk >> backup_ftp.log

echo xk >> backup_ftp.log

echo send d:\backup\rarbak\vehes_%date:~0,10%.rar >> backup_ftp.log

echo bye >> backup_ftp.log

ftp -s:backup_ftp.log

rem 删除临时文件

del /f backup_ftp.log

?

百度了一个童鞋的代码后,不知道是我不会用,还是他的本来就有问题。?
稍微改了下,经过改正,的确可用,现发布上来给大家分享分享。已测试。
第一个xk为FTP用户名,第二个xk为密码。。其它应该不用说了!
前提是:在D盘需要手动创建好D:\backup\dbbak及D:\backup\rarbak 两个文件夹。。

?

1 楼 lynnbond 2010-09-17  
详细,正是我想要的,多谢,多谢!