备份到远程服务器

--如果xp_cmdshell没有启用,请先启用
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure
GO
--1.先创建映射
--要备份的共享路径:\\192.168.50.13\share
--账户密码:实际的远程密码
--账户:192.168.50.13\administrator
exec master..xp_cmdshell 'net use \\192.168.50.13\share password /user:192.168.50.13\administrator'

--2.利用映射备份数据库
backup DATABASE test to disk=N'\\192.168.50.13\share\test.bak' WITH COMPRESSION

--3.删除映射
exec master..xp_cmdshell 'net use \\192.168.50.13\share /delete'

 

但 xp_cmdshell 开启毕竟不安全, 因此在备份完成之后应该关闭才对, 上面的代码测试成功之后,SQL作业的脚本里可以这样写:

 

--如果xp_cmdshell没有启用,请先启用
sp_configure 'show advanced options',1
reconfigure
go
sp_configure 'xp_cmdshell',1
reconfigure
GO
--备份数据库
backup DATABASE test to disk=N'\\192.168.50.13\share\test.bak' WITH COMPRESSION
go
sp_configure 'xp_cmdshell',0
reconfigure
GO

下面这个是 水果版主 的另一篇博客:

原文:http://132.232.124.166/post/sqlserver_remote_backup.html

利用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

-- 注:

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

set FILE_NAME=%FILE_NAME: =0%

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值