我想问下在SQL中能不能把SQL中每天自动备份的数据库文件.自动保存到局域网中的其他电脑上的共享文件中?

解决方案 »

  1.   

    看一下这个:在这基本上做个作业调度!主要是权限没有设置好, 参考下面的备份文件共享目录权限设置方法去解决目录的共享权限就可以了 
    下面假设是假设A服务器上的数据库备份到B服务器上的共享目录权限设置(两台服务器应该在局域网内,允许目录共享访问)::1.机器A,B创建一个同名的windows用户,用户组设置为administrators,并设置相同的密码,做为备份文件夹文件夹的有效访问用户,操作:
    我的电脑
    --控制面板
    --管理工具
    --计算机管理
    --用户和组
    --右键用户
    --新建用户
    --建立一个隶属于administrator组的登陆windows的用户2.在B机器器上,新建一个共享目录,做为备份文件的存放目录,操作:
    我的电脑--D:\ 新建一个目录,名为: BAK
    --右键这个新建的目录
    --属性--共享
    --选择"共享该文件夹"
    --通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
    --确定
    3.设置 MSSQLSERVER 及 SQLSERVERAGENT 服务的启动用户
    开始--程序--管理工具--服务
    --右键 MSSQLSERVER
    --属性--登陆--选择"此账户"
    --输入或者选择第一步中创建的windows登录用户名
    --"密码"中输入该用户的密码
    --确定
    --同样的方法设置 SQLSERVERAGENT4.在A机器上完成对B机器BAK目录的映射5.查询分析器中执行下面的语句,检验是否成功:
      exec master..xp_cmdshell 'dir 映射的盘符'6.A服务器上做备份计划备注:创建一个新的用户只是为了让MSSQLSERVER服务的启动帐户与共享目录的有效访问同名且密码相同,这样才能通过验证(所以你也可以用其他有效的用户来代替,只需要满足用户名和密码相同,并且拥有足够的权限)
    第一步 共享本机一文件夹 e:\aa 共享名为 test
    net share test = e:\aa
    第二步 执行SQL在数据库服务器上创建影射 z:
    exec master..xp_cmdshell 'net use z: \\hyserver\test mmd /user:administrator'
    第三步 执行备份
    backup database cs01 to disk = 'z:\\cs01_05-12-26.bak'
    第四步 删除数据库服务器上的影射 z:
    exec master..xp_cmdshell 'net use z: /delete' 
    第五步 取消本机共享文件夹 test
    net share test /delete
      

  2.   

    有两种方法,一是备份到本机,再复制,二是直接备份到另一台机
    都需要创建映射
    有一点一定要注意,另一台机的共享文件夹的权限(要准许写入)需要创建映象
    exec master..xp_cmdshell 'net use z: \\192.168.1.2\文件夹名 "" /user:192.168.1.2\administrator'--备份;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 'net use z: /delete'
      

  3.   

    那这种办法是A的服务器备份到B,那能不能先备份到A后,再把A的备份复制到B上
      

  4.   

    跟楼上的一样:--在sql中映射一下就可以了
    exec master..xp_cmdshell 'net use z: \\yizhi\D$ "密码" /user:yizhi\administrator'/*--说明:
    exec master..xp_cmdshell 'net use z: \\xz\c$ "密码" /user:xz\administrator'z:是映射网络路径对应本机的盘符,与下面的备份对应
    \\xz\c$是要映射的网络路径xz\administrator
    xz是远程的计算机名,
    administrator是登陆的用户名
    密码 面指定的administrator用户的密码
    --*/--备份;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'
      

  5.   

    参考:
    http://www.cnblogs.com/insus/articles/1916270.html