好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQL2008定时备份数据库并上传到FTP

首先新建数据库维护计划,定时执行数据库备份,打开数据库管理器——管理——维护计划——右键新建维护计划向导——计划更改——选择执行时间。 选择维护任务:备份数据库 选择要备份的数据库,可选数据库备份目录,备份报告。 维护计划添加完成。 FTP上传脚

首先新建数据库维护计划,定时执行数据库备份,打开数据库管理器——>管理——>维护计划——右键新建维护计划向导——>计划更改——>选择执行时间。

选择维护任务:备份数据库

选择要备份的数据库,可选数据库备份目录,备份报告。

维护计划添加完成。

FTP上传脚本,由于windows下ftp命令不支持被动模式,此脚本使用curl命令上传到FTP。

1
2
3
4
5
6
7
8
9
 
  set    sqlpath =d:\back   #备份目录  
  set    dbname =onovps   #备份数据库名称,例onovps.bak  
  set    ftphost =onovps测试数据   #FTP服务器地址  
  set    ftpuser =  ftp     #FTP用户  
  set    ftppasswd =  passwd     #FTP密码  
 path =  %  path  %  ;C:\Program Files\WinRAR\;C:\Program Files\curl\   #设置环境变量  
  cd     %  sqlpath  %  
Rar.exe a   "%dbname%" - "%date:~0,10%" .rar  -df   "%dbname%" .bak
curl  -u     %  ftpuser  %  :  %  ftppasswd  %    -T    %  dbname  %  - "%date:~0,10%" .rar   ftp  :  //%  ftphost  %   


然后将此脚本添加到计划任务,定时每天执行。

更新:
经过调试发现问题有点多哦,首先维护计划未成功执行,错误日记:SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 'WIN-KC19Q4LEIOD\Administrator' 的信息,错误代码 0x534。
解决:原来之前有更改过计算机名称,更改SQL管理器——>安全性——>登录名——>当前管理员账户前计算机名称。
其次维护计划执行后备份的数据库名称是随机的,不便于处理,使用sqlcmd命令备份数据库解决。

1
2
3
4
5
 
sqlcmd  -U   -P   -Q   "backup database onovps to disk=" c:\back\onovps.bak "
-U:  #数据库用户 (可选)
-P   #数据库密码 (可选)
#如未指定-U -P以本地账户验证登录
#如果数据库以onovps测试数据形式,须以[onovps测试数据]方式备份,不然会提示语法错误  

查看更多关于SQL2008定时备份数据库并上传到FTP的详细内容...

  阅读:42次