我有一个SQL Server 2012数据库,目前用作事务数据库和报告数据库。应用程序读/写到同一数据库,并且还针对同一数据库生成报告。
由于某些性能问题,我决定维护数据库的两个副本。一个是将由应用程序访问的事务数据库。另一个数据库将是事务数据库的精确副本,它只会由报告服务使用。
以下是要求:
报告数据库应每隔一小时与事务数据库同步。也就是说,报告数据库可以有最多1小时的陈旧数据。
必须是只读数据库。
主要内涵不是恢复或可用性。
我不确定哪种策略,事务日志传送,镜像或复制最适合我的情况。此外,如果我更频繁地进行同步操作(例如每10分钟一次),是否会对交易数据库或报告服务产生任何影响?
由于
答案 0 :(得分:0)
我强烈建议您以只读状态使用备用数据库。每隔15分钟,您的sqlserveragent就会有一个预定的作业:a)在主数据库中生成一个新的.trn日志文件,以及b)将其恢复为备用数据库(您的报告数据库)。唯一的问题是:使用此技术会在代理恢复.trn日志文件时断开会话。但是,如果您可以停止还原作业,运行报告然后重新激活它,则没有问题。似乎正是您所需要的。或者,如果您的报告快速运行,可能不会断开连接...如果我没有错误还原作业也可以配置为等待打开的会话完成或关闭它。如果你找不到,我明天可以查看这个最后的疑问。
一旦它在同一个sql server实例中运行,你就不必担心额外的许可......