微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

一个sqlserver2000中,通过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

这是恢复备份的源码
 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上调试通过

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐