| 
 | 
 
目标: 
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》 |   
 
 
 
 |