我想在辅助服务器上创建 SQL Server 2008 数据库的只读副本,用于报告和分析。我一直在测试日志传送,配置为每 5 分钟左右运行一次。唉,似乎有一个障碍,因为在恢复期间需要对目标数据库进行独占访问,这反过来又需要终止所有活动连接。这远非理想,特别是当用户正在运行报告时。有什么更好的建议吗?
编辑:我在 Express 版本上执行此操作。
答案1
如果您需要保持在线访问数据,您有几个选择(假设您只想使用 SQL 本机功能作为解决方案,如果您对第三方软件和/或硬件开放,你还有很多其他选择):
1)复制 - 最有可能是事务复制和单个只读订阅者(msdn 是一个很好的概述起点,我会发布一个链接,但目前我只能使用 1,只需谷歌搜索“sql server replication msdn”,它就会在顶部)
2)保留日志传送配置,以便将数据传输到辅助服务器,并利用数据库快照与公用数据库和旋转同义词相结合(请参阅这里有关此类架构的详细信息)。仅当您在辅助服务器上使用企业版(唯一支持快照的版本)时,此功能才有效。
答案2
如果您可以处理报告数据的轻微延迟,那么一个简单的解决方案就是减少数据库恢复频率。
您仍然可以每 5 分钟备份和复制一次,但只需将恢复作业的频率更改为每小时一次或适当的频率。
用户可能仍会断线,但频率会较低。