当前位置:首页 > SQL Server > 正文内容

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

管理员11年前 (2009-09-07)SQL Server483

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

– 注:

这句话的意思是,把 FILE_NAME 这个变量中空格转换成0, 20090901 90101 转换成 20090901090101

set FILE_NAME=%FILE_NAME: =0%


打赏 支付宝打赏 微信打赏
    扫描二维码至手机访问

    扫描二维码推送至手机访问。

    版权声明:本文由卖水果的net发布,如需转载请注明出处。

    转载请注明出处:http://www.msgde.net/mssql/sqlserver_remote_backup.html

    分享给朋友:
    返回列表

    没有更早的文章了...

    下一篇:SQL Server 收缩数据库

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。