1

我有一个 SQL Server 2012 数据库,目前用作事务数据库和报告数据库。应用程序读取/写入同一个数据库,并且报告也针对同一个数据库生成。

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

以下是要求:

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

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

  3. 主要意图不是恢复或可用性。

我不确定哪种策略(事务性日志传送、镜像或复制)最适合我的情况。此外,如果我更频繁地执行同步操作(例如每 10 分钟一次),是否会对事务数据库或报告服务产生任何影响?

谢谢

4

1 回答 1

0

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

一旦它在同一个 sql server 实例中运行,您就不必担心额外的许可......

于 2015-12-03T02:00:30.537 回答