- 爱易网页
-
MSSQL教程
- SQL数据库自动备份到另一台电脑上(欢迎讨论)解决办法
日期:2014-05-18 浏览次数:20478 次
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的计划任务在数据库备份完毕后(间隔半小时即可)定期调用~~保证可以解决问题。
一张表存在多记录两个字段交叉相等,怎么将这些记录提取出来并顺序显示