执行这句时报错:exec master..xp_cmdshell 'net use v: \\112.118.2.4\f$\bak uuhtjc /user:administrator /y'
修改为:exec master..xp_cmdshell 'net use v: \\112.118.2.4\f$\bak uuhtjc /user:112.118.2.4\administrator /y'
就可以了
参考自:
http://www.cnblogs.com/xiaogangqq123/archive/2011/09/30/2196730.html
SQLServer 事务日志传送
事务日志传送概述
SQL Server的事务日志传送备份是仅次于镜像的高可靠性备份方案,可以达
到分钟级的灾难恢复能力。其项目实施成本,又远小于镜像的投入,因此是
一种非常实用的备份解决方案。前文介绍过SQLServer 镜像功能完全实现,镜
像是一种高性能的备份方案,但其局限性在于镜像的辅助服务器也就是镜像服
务器只能 有一个,当我们考虑过个目标服务器的时候,镜像就满足不了我们
的需求了,这时候日志传送可谓雪中送炭,日志传送也可以结合镜像来组合
使用。
在选择镜像还是日志传送的时候我们应考虑:
需要多少个目标服务器?
如果只需要一个目标数据库,建议使用数据库镜像解决方案。
如果需要多个目标数据库,则需要使用日志传送(可以单独使用,也可以与
数据库镜像一起使用)。如果将这两种方法组合使用,就既能享有数据库镜
像的好处,又能获得日志传送提供的多个目标数据库的支持。
如果需要延迟还原目标数据库的日志(通常是为了防止逻辑错误),请使用
日志传送(可以单独使用,也可以与数据库镜像一起使用)。
日志传送还可以和数据库复制一起使用。
故在事务日志传送中提供了No recovery mode和Standby mode,两者的
介绍如下:
1. 无恢复模式(No recovery mode):既不前滚也不回滚未提交的事务,
数据不可读。
2. 备用模式(Standby mode):在恢复日志期间回滚所有未提交的事务,
并且将所有未提交的事务保存为一个单独的Transaction Undo File(TUF)文
件,恢复过程通过该文件来维护事务的完整性,当恢复下一个事物的时候则
恢复所有已提交的事务。Standby mode中的复选框勾选则当日志恢复的时
候,断开所有用户的连接,如果有一个用户没有断开,则还原无法进行。
事务日志传送实现
其实操作比较简单,但是会遇到稀奇古怪的问题。在这里也把问题总结下。
首先需要两个用来做日志传送的数据库。叫做主数据库和辅助数据库。当然
还可以配置监视数据库。
主数据库IP: 192.168.0.2
辅助数据库IP:192.168.0.3
下面通过简单的几步就可以实现
1,建立共享文件夹以及复制文件夹
建立好需要传送日志的数据库,并在辅助服务器上建一个共享文件夹叫做
PrimaryData,用来传送备份文件。
设置好权限。保证主服务器可以访问,或者直接设置EveryOne都可访问。
这里设置不当会出现以下错误
无法打开备份设备 '\\192.168.0.3\PrimaryData\test.bak'。出现操作系统错
误 53(找不到网络路径。)。
解决方法.
设置共享文件
exec master..xp_cmdshell 'net use \\192.168.0.3\PrimaryData 密码
/user:用户名’
至于句话的意思大家可以去查下咯.执行成功后就可以将数据库备份到网络路
径上了。
报错为:
1 系统发生1312错误
3 指定的登陆会话不存在。可能已被终止
解决方法.
exec master..xp_cmdshell 'net use \\192.168.0.3\PrimaryData 密码
/user:192.168.10.3\administrator'
2,执行完全备份
USE master;
ALTER DATABASE test SET RECOVERY FULL;
GO
BACKUP DATABASE test
TO DISK = '\\192.168.0.3\PrimaryData\test.bak'
WITH FORMAT;
GO
如果上面一句话执行成功的话,这个应该没问题。之后的步骤就简单了。
3,开始执行日志传送
访问\\192.168.0.3\PrimaryData\ 可以看到刚才备份的文件。
然后在数据库上右键-属性-事务日志传送
设置备份文件夹,这里我都备份到了辅助服务器上。
确定之后点击添加服务器,设置要连接的数据库。
设置复制文件的位置,这里最好在辅助服务器上。可以很快访问到,省去了网
络带来的延迟。
这里的两种模式上文都有介绍,大家可以根据需要来选择。
到此,主服务器上的配置就完成了。
4,辅助服务器上查看记录
如果以上步骤没问题的话,我们可以在辅助服务器上的PrimaryData 目录下
看到trn后缀的文件。
可以在代理下 查看作业执行的历史记录。
如果你选择的是备用模式。我通过查看历史记录遇到了一个问题是
“因为数据库正在使用,所以无法获得对数据库的独占访问权“
网上有介绍说用sql语句来杀掉进程,不过这种方式不是长久之计。可以通过
配置数据库的属性,在数据库属性的【选项】选项卡中,设置【限制访问】
参数为“Single”即可。
使用无恢复模式不会出现这样的问题。
5,故障恢复
将主服务器上的日志传送停止,然后将最后的备份文件复制到辅助服务器上
执行以下语句
RESTORE LOG <Database_Name>
FROM DISK ='d:\PrimaryData\Database_name.trn' WITH RECOVERY
如果无法访问活动事务日志,那么可以使用下面的命令来恢复数据库。
RESTORE DATABASE <Database_Name> WITH RECOVERY;
下篇详细讲故障恢复。