sql server远程备份和恢复

时间:2021-03-17 19:50:22

sql server远程备份和恢复

SQLSERVER服务实例名称:192.168.0.2
需要备份的数据库名称:
a
备份机器名称(Client端):192.168.0.3
备份机用户:zf
密码:123
备份机域名:domain
备份机提供备份需求的文件夹:D:\sqlbak

备份数据库

第一步: 在备份机建立共享文件夹
               在程序代码中调用(或者CMD窗口)   net share
sqlbakup=D:\sqlbak     或者用NetShareAdd这个API
              
简要说明:
                       net
share:是WINDOWS内部的网络命令。
                               
作用:建立本地的共享资源,显示当前计算机的共享资源信息。

第二步: 建立共享信用关系
              exec master..xp_cmdshell 'net use  file://192.168.0.3/sqlbak 123
/user:domain\zf'
              简要说明:
                     1:xp_cmdshell
:是SQLSERVER的扩展存储过程。
                             作用:以操作系统命令行解释器的方式执行给定的命令字符串,
并以文本行方式返回任何输出。
                            
语法:参见SQLSERVER联机帮助
                     2:net use :
是WINDOWS内部的网络命令。
                            
作用:将计算机与共享资源连接或断开,或者显示关于计算机连接的信息。

该命令还控制持久网络连接。

第三步:备份数据库
              backup database a   to
disk='\\192.168.0.3\sqlbak\a.bak'
              backup database a   to
disk='\\192.168.0.3\sqlbak\a1.bak' WITH DIFFERENTIAL (差异备份)

第四步: 删除共享文件夹
               在程序代码中调用(或者CMD窗口)   net share
sqlbakup/delete
               或者用NetShareDel这个API

恢复数据库

restore database a   from
disk='\\192.168.0.3\sqlbak\a.bak'
      
      以下是差异还原
      restore
database scs   from disk='\\192.168.0.3\sqlbak\a.bak'   WITH NORECOVERY
     
restore database scs   from disk='\\192.168.0.3\sqlbak\a1.bak'   WITH
NORECOVERY
      restore database scs   from
disk='\\192.168.0.3\sqlbak\a2.bak'