很早以前的一个项目里写的,现在放上来备忘。
要求:
具有管理员权限,一般sa用户就可以。
备份原理如下:
首先导出数据库到本地硬盘上,然后压缩成cab文件,之后用ftp.exe将压缩包上传到ftp服务器上
恢复原理如下:
首先在ftp服务器上下载压缩包,然后解压缩里面的文件,最后将数据库备份恢复。
这是备份的源码
这是恢复备份的源码
要求:
具有管理员权限,一般sa用户就可以。
备份原理如下:
首先导出数据库到本地硬盘上,然后压缩成cab文件,之后用ftp.exe将压缩包上传到ftp服务器上
恢复原理如下:
首先在ftp服务器上下载压缩包,然后解压缩里面的文件,最后将数据库备份恢复。
这是备份的源码
1
create
procedure
sp_BackupDB
2 @dbname varchar ( 50 ),
3 @Host 255 4 @User 5 @Password 6 -- @Port int,
7 @WorkingFolder 8 @FileName )
9 as
10 begin 11 declare @stempFileName 12 @sCommandText 13 @sCabFileName 14 @stempFolder 15 16 set = ' ~dbback ' 17 创建临时文件夹 18 md c: + 19 exec xp_cmdshell 20 21 c: '' 22 REPLACE ( , .zpck .dbak 23 24 删除可能存在的的临时文件 25 del " + " 26 27 28 29 30 31 备份数据库 32 BACKUP DATABASE TO disK 33 set @sCommandText = 'BACKUP DATABASE ' + @dbname + ' TO disK = ''' + @stempFileName + '''' 34 execute(@sCommandText) 35
36 将数据库压缩成数据包 37 xp_makecab mszip 1 , 38 39 @ftpLogScriptFileName 40 .log ) 41 产生ftp上传脚本 42 echo ftp> 43 44 echo open >> 45 46 echo 47 48 49 50 echo cd 51 52 echo put " ">> 53 54 echo bye >> 55 56 57 上传数据包 58 ftp -s:" 59 60 61 删除数据库压缩包 62 63 64 65 删除ftp上传脚本 66 67 68 69
70 删除数据库备份 71 72 73 74 删除临时文件夹 75 rd c: 76 77 78 return 79 end
2 @dbname varchar ( 50 ),
3 @Host 255 4 @User 5 @Password 6 -- @Port int,
7 @WorkingFolder 8 @FileName )
9 as
10 begin 11 declare @stempFileName 12 @sCommandText 13 @sCabFileName 14 @stempFolder 15 16 set = ' ~dbback ' 17 创建临时文件夹 18 md c: + 19 exec xp_cmdshell 20 21 c: '' 22 REPLACE ( , .zpck .dbak 23 24 删除可能存在的的临时文件 25 del " + " 26 27 28 29 30 31 备份数据库 32 BACKUP DATABASE TO disK 33 set @sCommandText = 'BACKUP DATABASE ' + @dbname + ' TO disK = ''' + @stempFileName + '''' 34 execute(@sCommandText) 35
36 将数据库压缩成数据包 37 xp_makecab mszip 1 , 38 39 @ftpLogScriptFileName 40 .log ) 41 产生ftp上传脚本 42 echo ftp> 43 44 echo open >> 45 46 echo 47 48 49 50 echo cd 51 52 echo put " ">> 53 54 echo bye >> 55 56 57 上传数据包 58 ftp -s:" 59 60 61 删除数据库压缩包 62 63 64 65 删除ftp上传脚本 66 67 68 69
70 删除数据库备份 71 72 73 74 删除临时文件夹 75 rd c: 76 77 78 return 79 end
这是恢复备份的源码
sp_RestoreDB
@MDFPhyFileName @MDFLogFileName @LDFPhyFileName @LDFLogFileName @ReturnValue int output
- )
@sUnpackFolder )
set @MDFPhyFileName = 'C:Program FilesMicrosoft sql ServerMSsqlDataSuStorageMgr.mdf'
-- set @MDFLogFileName = 'SuStorageMgr_Data' set @LDFPhyFileName = 'C:Program FilesMicrosoft sql ServerMSsqlDataSuStorageMgr_log.ldf' set @LDFLogFileName = 'SuStorageMgr_Log' )
md
产生ftp下载脚本 echo ftp>" >>" >>" & lt;; / span gt; echo get echo bye >>" 下载数据包 ftp -s: 删除ftp下载脚本 压缩包解压缩 xp_unpackcab 还原数据库 RESTORE
FROM disk
WITH RECOVERY,
to 删除临时目录 rd end
在windows 2000+sql server 2000上调试通过
@MDFPhyFileName @MDFLogFileName @LDFPhyFileName @LDFLogFileName @ReturnValue int output
- )
@sUnpackFolder )
set @MDFPhyFileName = 'C:Program FilesMicrosoft sql ServerMSsqlDataSuStorageMgr.mdf'
-- set @MDFLogFileName = 'SuStorageMgr_Data' set @LDFPhyFileName = 'C:Program FilesMicrosoft sql ServerMSsqlDataSuStorageMgr_log.ldf' set @LDFLogFileName = 'SuStorageMgr_Log' )
md
产生ftp下载脚本 echo ftp>" >>" >>" & lt;; / span gt; echo get echo bye >>" 下载数据包 ftp -s: 删除ftp下载脚本 压缩包解压缩 xp_unpackcab 还原数据库 RESTORE
FROM disk
WITH RECOVERY,
to 删除临时目录 rd end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。