跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

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

sqlserver远程异地备份 问题描述 客户的 sqlserver 数据库服务器每日凌晨自动备份 T1 数据库,现在要求同时将备份文件自动上传到一台存储服务器(有 FTPSERVER )上 解决方案 1. 开发一个 window 服务程序每日凌晨将本机(数据库服务器)的备份文件以 FTP sqlserver远程异地备份问题描述客户的sqlserver数据库服务器每日凌晨自动备份T1数据库,现在要求同时将备份文件自动上传到一台存储服务器(有FTPSERVER)上解决方案

1.

开发一个window服务程序每日凌晨将本机(数据库服务器)的备份文件以FTP方式上传到存储服务器上

2.

利用sqlserver的xp_cmdshell工具调用FTP命令将备份文件上传到存储服务器上具体方法第一种方案不再描述第二种方案实现如下SQLServer 数据库批量查找替换工具1.2 SQL木马清除助手SQLServer 数据库批量查找替换工具1.2 SQL木马清除助手下载

1.

确认存储服务器FTP服务可用,确认用户名秘密

2.

使用以下SQL代码打开xp_cmdshell使用权限(sqlserver 2005默认关闭)

sp_configure 'show advanced options', 1GORECONFIGUREGOsp_configure 'xp_cmdshell', 1GORECONFIGUREGO

3.

在sqlserver数据库服务器C:\dbbackup\下创建FTP脚步文件ftpconfig.txt内容如下,第一行用户名第二行秘密,如果匿名第一行anonymous第二行空行123123put 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 @tempfilenamedeclare @tempfilename1 varchar(100)set @tempfilename1='C:\dbbackup\testdb'+ @tempfilename +'.tempBAK'backup databasetestdbTO DISK = @tempfilename1EXEC xp_cmdshell 'ftp -s:c:\dbbackup\ftpconfig.txt 192.168.0.44 ' –anonymousdeclare @temp varchar(100)set @temp='ren C:\dbbackup\testdb'+ @tempfilename +'.tempBAK '+'testdb'+ @tempfilename +'.BAK'print @tempEXEC xp_cmdshell @temp

5.

在sqlserver数据库上建立维护计划,定时自动执行第四部分SQL

相关文章