|  | 
 
| 目标: backup database 数据库 to disk='\\你的计算机名\共享目录名\备份文件名'
 
 方法一:通过映射网络驱动器(这样可以解决权限问题)
 
 1.映射
 exec master..xp_cmdshell 'net use z: \\xz\c$ "" /user:xz\administrator'
 (备注 z: 是映射网络路径对应本机的盘符,与下面的备份对应; \\xz\c$ 是要映射的网络路径; xz\administrator xz是远程的计算机名,administrator是登陆的用户名。)
 
 2.进行数据库备份
 backup database 数据库名 to disk='z:\备份文件名'
 
 3.备份完成后删除映射
 exec master..xp_cmdshell 'net use z: /delete'
 
 方法二:直接备份到网络中的远程计算机
 1.backup database 数据库 to disk='\\远程计算机\D$\备份文件名'
 2.最好是在一个域中
 3.如果不是,要保证你有远程计算机的administrator权限
 4.否则将备份失败
 
 你可以这样测试:
 a.\\\\远程计算机\D$
 b.如果不让输入账号和密码,则可以
 c.如果让输入账号和密码就不可以
 
 可以这样来做:
 a.让2台计算机的administrator的密码完全一样
 b.都用adminsitrator登陆
 c.同时sql server的启动账号也用administrator即可
 
 c.1.在服务器上新建一个用户和本地机器的用户名和密码都一样.
 c.2.把服务器的sql服务方式更改为您新设的这个帐户和密码.
 c.3.把服务器上sql代理用新建的该用户名和密码启动.
 c.4.在服务器上新建一个作业,输入脚本:
 BACKUP DATABASE [服务器的数据库名] TO DISK = N'本地机器的网路路径' WITH INIT , NOUNLOAD , NAME = N'back name', NOSKIP , STATS = 10, NOFORMAT
 这样就可以了
 
 例子
 参考下面的设置来做映射(假设A服务器上的数据库备份到B服务器)(限局域网内):
 1.机器A,B创建一个同名的windows用户,用户组设置为administrators,并设置相同的密码,做为备份文件夹文件夹的有效访问用户,操作:
 我的电脑》控制面板》管理工具》计算机管理》用户和组》右键用户》新建用户
 --建立一个隶属于administrator组的登陆windows的用户
 
 2.在B机器器上,新建一个共享目录,做为备份文件的存放目录,操作:
 我的电脑--D:\ 新建一个目录,名为: BAK
 --右键这个新建的目录
 --属性--共享
 --选择"共享该文件夹"
 --通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
 --确定
 3.设置 MSSQLSERVER 及 SQLSERVERAGENT 服务的启动用户
 开始--程序--管理工具--服务
 --右键 MSSQLSERVER
 --属性--登陆--选择"此账户"
 --输入或者选择第一步中创建的windows登录用户名
 --"密码"中输入该用户的密码
 --确定
 --同样的方法设置 SQLSERVERAGENT
 4.在A机器上完成对B机器BAK目录的映射
 5.查询分析器中执行下面的语句,检验是否成功:
 exec master..xp_cmdshell 'dir 映射的盘符'
 6.A服务器上做备份计划
 
 SQL异地备份失败,归根结底是权限问题
 如:
 SQLServer备到FileServer上
 那你的SQLServer的启动用户必须在FileServer上有足够的权限!
 
 《本文引用于http://blog.sjzj.com.cn/article.asp?id=689》
 | 
 |