我正在研究在 SQL Server 2005 环境中使用日志传送。这个想法是设置频繁的日志传送到辅助服务器。意图:使用辅助服务器来提供报告查询,从而卸载主数据库服务器。
我在sqlservercentral 论坛线程上遇到了这个问题:
创建日志传送时,您有 2 个选择。您可以将还原日志操作配置为使用 norecovery 或使用备用选项来完成。如果使用 norecovery 选项,则不能对其发出 select 语句。如果您使用备用选项而不是 norecovery,则可以在数据库上运行选择查询。请记住,当日志文件还原发生时,用户将被踢出,而不会被还原过程发出警告。当您配置带有备用选项的日志传送时,您还可以在 2 个选项之间进行选择——杀死辅助数据库中的所有进程并执行日志恢复,或者如果正在使用数据库则不执行日志恢复。当然,如果您选择第二个选项,如果有人打开与数据库的连接并且没有关闭它,则还原操作可能永远不会运行,
所以我的问题是:
- 以上是真的吗?你真的不能按照我想要的方式使用日志传送吗?
- 如果这是真的,有人可以解释为什么在恢复事务日志时不能对数据库执行 SELECT 语句吗?
编辑:
第一个问题与此 serverfault question重复。但我仍然希望回答第二个问题:为什么在恢复事务日志时不能执行 SELECT 语句?