sqlserver远程异地备份(ftp方式传送)

sqlserver远程异地备份(ftp方式传送)
sqlserver 远程异地备份
问题描述
客户的sqlserver 数据库服务器每日凌晨自动备份T1数据库,现在要求同时将备份文件自动上传到一台存储服务器(有FTPSERVER)上
解决方案
1. 开发一个window服务程序每日凌晨将本机(数据库服务器)的备份文件以FTP方式上传到存储服务器上
2. 利用sqlserver 的xp_cmdshell 工具调用FTP命令将备份文件上传到存储服务器上
具体方法
第一种方案不再描述
第二种方案实现如下
1. 确认存储服务器FTP服务可用,确认用户名秘密
2. 使用以下SQL代码打开xp_cmdshell使用权限(sqlserver 2005 默认关闭)
sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
sp_configure 'xp_cmdshell', 1
GO
RECONFIGURE
GO
3. 在sqlserver数据库服务器C:\dbbackup\下创建 FTP 脚步文件ftpconfig.txt 内容如下,第一行用户名第二行秘密,如果匿名第一行 anonymous 第二行空行
123
123
put C:\dbbackup\*.tempBAK
close
quit
4. 在sqlserver数据库查询分析器测试以下SQL代码,假设数据库名 testdb 备份位置C:\dbbackup 存储服务器IP 192.168.0.44
declare @tempfilename varchar(100)
set @tempfilename= CONVERT(varchar(8), GETDATE(), 112)+ CONVERT(varchar(2), DatePart (Hour,GETDATE()))+ CONVERT(varchar(2), DatePart (Minute,GETDATE())) + CONVERT(varchar(2), DatePart (second,GETDATE()))
print @tempfilename
declare @tempfilename1 varchar(100)
set @tempfilename1='C:\dbbackup\testdb'+ @tempfilename +'.tempBAK'
backup database testdb TO DISK = @tempfilename1
EXEC xp_cmdshell 'ftp -s:c:\dbbackup\ftpconfig.txt 192.168.0.44 ' –anonymous
declare @temp varchar(100)
set @temp='ren C:\dbbackup\testdb'+ @tempfilename +'.tempBAK '+'testdb'+ @tempfilename +'.BAK'
print @temp
EXEC xp_cmdshell @temp
5. 在sqlserver数据库上建立维护计划,定时自动执行第四部分SQL
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值