利用Windows 的计划任务完成 SQL Server 数据库实现异地备份

 SQL Server使用 Backup database 时,只能使用本地的磁盘,把把其他的机器共享止录映射为本机的一个虚拟盘符,也不能备份;下面提供一个方法,思路是在备份放在本地,再通过FTP的形式,传到远程机器上,当然了,这需要远程的机器开通FTP服务。

@echo off
rem begin 初始化变量

for /f "tokens=1" %%x in ('date /t') do set FILE_NAME=%%x_%time:~0,2%
set FILE_NAME=%FILE_NAME: =0%
set FILE_PATH=D:\BAK
set FTP_PARAM_NAME=ftp.ini

osql -E -Q"exec sp_shrinkdb"

rem -------------------------------------------------------------------------------------------------
for %%I in (hxpublic,hxtz101,hxtz102,hxtz103,hxtz104,hxtz105) do (
title 正在备份%%I
osql -E -Q"backup database %%I to disk ='%FILE_PATH%\%%I_%FILE_NAME%.msbak'"
rar a -df -ep %FILE_PATH%\%FILE_NAME%.rar %FILE_PATH%\%%I_%FILE_NAME%.msbak 
)

call :write_parfile %FTP_PARAM_NAME%
ftp -s:%FTP_PARAM_NAME%
del %FTP_PARAM_NAME%

ping -n 60 127.0.0.1>nul
exit
rem ---- End of Main Program ----------------

:write_parfile 
rem 生成 FTP 上传的参数文件
rem 注意 第一行只有一个 ">" , 其余行 为 ">>"
echo open 192.168.1.20 >%1%
echo ftpuser>>%1%
echo ftppwd>>%1%
echo bin>>%1%
echo cd backup >>%1%
echo put %FILE_PATH%\%FILE_NAME%.rar %FILE_NAME%.rar >>%1%
echo bye >>%1%
goto :eof
rem -------------------------------------------------------------------------------------------------
rem end
echo 完成 ... ...
echo on

 

 



分享到:更多


引用通告: 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数:
发表评论
昵 称:
邮 箱:
主 页:
内 容: