用SQLSERVER远程备份

来源:互联网 发布:软件商城开发公司 编辑:程序博客网 时间:2024/05/17 00:14

  有一SQLserver服务器,有SA密码, 要对远程数据库进行异地备份,备份到客户端。

  客户端为XP系统,FAT32,机器名 IT-Jet 用户名 Jet

  首先,服务器要允许执行xp_cmdshell存储过程

  1.共享客户端文件夹 名称为F

  2.连接到数据库master执行

  use master

  3.登录共享机器

  exec xp_cmdshell "net use //it-jet/f jet/user:it-jet/jet"

  4.即可使用共享路径远程备份数据库

  Backup database DBNAME to Disk='//it-jet/F/dbname.bak'

       --差异备份 
      Backup database DBNAME to Disk='//it-jet/F/dbname.bak'   WITH DIFFERENTIAL

       5: 删除客户机上共享文件夹 在程序代码中调用(或者CMD窗口)
        master..xp_cmdshell 'net share SqlBak /delete'

       6: 恢复数据库 
       Restore database DBNAME from disk=''//it-jet/F/dbname.bak'
       --差异还原
      Restore database DBNAME from disk=''//it-jet/F/dbname.bak'  WITH NORECOVERY

     在远程备份过程中,曾出现一个错误:ackupMedium::ReportIoError: 在备份设备“//it-jet/f/DBNAMEbak”上 write 失败。操作系统错误 112(磁盘空间不足。)。

  可是磁盘空间总量是远远大于数据库大小的。原来是FAT32最大的文件只支持4GB,大于它的就无法存储,因此将客户机的分区转换为NTFS后成功解决这个问题。

 

原创粉丝点击