大家好。
    我想把本机的数据库备份到局域网内别的主机上,但是每次只能把数据库备份到自己本机的硬盘上而不能备份到局域网内别的主机上。急需这个功能,请各位老师多指教。

解决方案 »

  1.   

    declare @data nvarchar(50) 
    set @data='e:\data\'+convert(varchar(10),getdate(),112) 
    BACKUP DATABASE job TO DISK = @data
    with initexec master..xp_cmdshell 'net use z: \\192.168.1.2\共享文件夹 "" /user:192.168.1.2\administrator'
    exec master..xp_cmdshell 'net use z: /delete'
    backup database job to disk='z:\1112222.bak' with init--备份;with init覆盖|noinit添加
    backup database 库名 to disk='E:\H_BACKUP.bak' with init--COPY
    exec master..xp_cmdshell 'copy E:\H_BACKUP.bak z:'--删除(这句可以去掉)
    --exec master..xp_cmdshell 'del E:\H_BACKUP.bak'--完成后删除映射
    exec master..xp_cmdshell 'net use z: /delete'create proc databak
    as
    --创建映射
    exec master..xp_cmdshell 'net use z: \\192.168.1.2\共享文件夹 "" /user:192.168.1.2\administrator',NO_OUTPUT--登陆账名
    declare @data nvarchar(50) 
    set @data='z:\'+convert(varchar(10),getdate(),112) 
    BACKUP DATABASE job TO DISK = @data
    with init
    exec master..xp_cmdshell 'net use z: /delete',NO_OUTPUT--删除映射--然后
    --在企业管理里做调度
    exec databak--drop proc databak
      

  2.   

    楼上说的不错,写成存储过程,然后进行调度
    再告诉LZ一个比较简单的方法:
    新建作业,作业步骤如下:
    --首先,做一个与客户端的映射
    exec master..xp_cmdshell 
    'net use z: \\192.168.0.66\D$ "密码" /user:192.168.0.66\administrator'
    /*--说明:
    z:是映射网络路径对应本机的盘符,与下面的备份对应
    \\192.168.0.66\d$是要映射的网络路径
    192.168.0.66\administrator
    192.168.0.66是远程的计算机名,administrator是登陆的用户名
    密码是上面指定的administrator用户的密码
    --*/--其次,进行数据库备份
    backup database cadre to disk='z:\cadre.bak'--最后.备份完成后删除映射
    exec master..xp_cmdshell 'net use z: /delete'然后设置作业调度,可自动实现异地定期备份
      

  3.   

    我试了一下,楼上说的基本可行,但问题有2.
    1、如果操作系统为windows2000 专业版,不能安装Sql Server2000服务器,只能安装Sql Server2000客户端和msde(微软桌面引掣),在这种配置下,‘master..xp_cmdshell net use 盘符 密码 用户名’这条语句根本无法执行。我现场所有主机全是这种配置,在msde中如何执行'master..xp_cmdshell net use ...'命令?
    2、如果两条语句全以‘master..xp_cmdshell’开头,系统提示错误。
    这两个问题我研究了很久没有解决,请各位老师指点。
      

  4.   

    楼主你应该是要把数据库服务器上的数据备份到其它的客户机上.以上步骤是以将其它客户机映射到服务器,服务器肯定装有SQL SERVER的.运行上面代码应该不会有问题.我试过了.
      

  5.   

    我是把客户机(windows 2000 professional+Sql Server2000的MSDE)上的数据库备份到数据库服务器上,在客户机上把服务器的某个共享目录映射为一个盘符,我试了很多次,但不成功。
      

  6.   

    再定义一个
    declare @data nvarchar(50),@data2 nvarchar(50)
    set @data='z:\'+convert(varchar(10),getdate(),112) 
    set @data2='del '+'z:\'+convert(varchar(10),getdate()-2,112)
    ....
    ....
    exec master..xp_cmdshell @data2
      

  7.   

    http://blog.csdn.net/yubofighting/article/details/6826666