- 爱易网页
 
                        - 
                            MSSQL教程
 
                        - SQL数据库自动备份到另一台电脑上(欢迎讨论)解决办法 
 
                         
                    
                    
                    日期:2014-05-18  浏览次数:20583 次 
                    
                        
                         SQL数据库自动备份到另一台电脑上(欢迎讨论)
原来客户的数据都是自动备份到服务器的,但是近来由于客户的电脑数据出现了安全问题。因此想更近一步在备份了本地服务器上,再把数据备份到局域网中的另一台电脑上。 
 在网上查了好多资料问题都没有得到解决。我是这样做的: 
 写了如下的语句在sql查询分析器里面运行。 
 declare   @sql   varchar(500) 
  
 select   @sql= '\\192.168.42.100\e:\xsl\chisbz '+ '.bak ' 
  
 exec   master..xp_cmdshell    'net   use   \\192.168.42.100\xsl   123456/user:sghis\new ' 
  
 backup   database   chisbz   to   disk=@sql 
  
 192.168.42.100是局域网中要备份数据的目标机器的IP地址,xsl是这台机器上的共享文件夹(完全共享),sghis是工作组名,服务器和目标机器都属于sghis这个工作组。new是登录目标机器的用户名,123456是登录目标机器时用户名new对应的密码。 
  
 当我在SQL查询分析器中执行以上语句时出现如下的错误提示: 
 Server:   Msg   3201,   Level   16,   State   1,   Line   10 
 无法打开备份设备    '\\192.168.42.100\e:\xsl\chisbz.bak '。设备出现错误或设备脱机。详细信息请参阅   SQL   Server   错误日志。 
 Server:   Msg   3013,   Level   16,   State   1,   Line   10 
 BACKUP   DATABASE   操作异常终止。 
  
 只运行exec   master..xp_cmdshell    'net   use   \\192.168.42.100\xsl   123456/user:sghis\new '时,出现如下的提示: 
 output                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
 --------------------------------------- 
 系统发生   5   错误。 
 NULL 
 拒绝访问。 
 NULL 
 NULL 
  
 (5   row(s)   affected) 
  
 有谁知道总题出在什么地方吗? 
  
 当然,我也可以先把数据备份到服务器上,再写个批处理把数据备份到另一台电脑上。可是网络地址就是找不到,这是问题的关键所在。 
  
 欢迎讨论,谢谢指教!
------解决方案--------------------
其实不用这么复杂,你首先使用SQL Server的自动维护工具将数据库备份至本地某目录。 
  
 然后做一个批处理文件,使用XCOPY命令,将某个文件夹下的文件复制到另一个位置,写法: 
  
 xcopy D:\FolderA\FolderB\*.* \\192.168.0.20\ShareFolderA\ /S /E /D /Y /C 
  
 至于/S /E /D /Y /C这些参数,你可以使用Xcopy /help查看一下。 
  
 然后使用一些BAT-> EXE的小程序将BAT转换成EXE文件,然后使用Windows的计划任务在数据库备份完毕后(间隔半小时即可)定期调用~~保证可以解决问题。
                         在SqlServer中使用Sql语句生成编号的有关问题