1

我有一个SQL Server 2012数据库,当前用作事务数据库和报告数据库。应用程序读取/写入同一个数据库,并且还针对同一个数据库生成报告。日志传送vs Replciation与镜像在SQL Server 2012中

由于某些性能问题,我决定维护数据库的两个副本。一个将是应用程序将访问的交易数据库。另一个数据库将是交易数据库的确切副本,并且只能由报告服务使用。

以下是要求:

  1. 报告数据库应当与事务性数据库中每隔一小时进行同步。也就是说,报告数据库最多可以有1小时的陈旧数据。

  2. 它必须是只读数据库。

  3. 主要内容不是恢复或可用性。

我不确定哪种策略,事务日志传送,镜像或复制,最适合我的情况。同样,如果我更频繁地进行同步操作(例如每10分钟进行一次),交易数据库或报告服务是否会受到影响?

谢谢

+0

检查出**的AlwaysOn **技术 - 它主要是为了高可用性,但它可以与数据库的副本**,也可用于报告等。 – 2015-02-24 06:09:18

回答

0

我强烈建议您在只读状态下使用备用数据库。每隔15分钟,您的sqlserveragent就会有一个预定的工作:a)在主数据库中生成一个新的.trn日志文件,并且b)将它恢复到备用数据库(您的报告数据库)。唯一的问题是:使用这种技术,当代理恢复.trn日志文件时,会话将被断开连接。但是,如果您可以停止还原作业,运行报告并重新激活它,则不存在任何问题。似乎正是你所需要的。或者,如果您的报告运行速度很快,可能不会断开连接...如果没有错误,还可以将还原作业配置为等待已打开的会话完成或关闭它。我可以检查它最后这无疑为你的明天,如果你没有找到..

一旦在同一个SQL Server实例上运行,你不必担心额外的许可......

+0

我已经确认,是的,你可以选择如果你想断开只读或不读的活动用户。正如你可以在给定的截图中看到复选框(取消选中):http://www.sqlshack.com/wp-content/uploads/2014/03/SecondaryDatabaseSettingsDBState.png – 2015-12-03 15:38:07