什么是为SSRS复制数据库的最佳方法

时间:2012-05-07 07:03:43

标签: sql-server sql-server-2008-r2 replication

我在一个实例中安装了SQL Server数据库(mainserver),在其他实例中安装了RerportServer的SQL Server数据库。将数据从mainServer复制到报表服务器的最佳方法是什么? mainServer 中的数据经常变化,而ReportSever中的实际信息非常重要。

有很多方法可以做到这一点:

  • 镜像
  • 发货日志
  • 事务复制
  • 合并复制
  • 快照复制

有关于此的一些最佳做法吗? 感谢

2 个答案:

答案 0 :(得分:11)

您的案例需要交易复制。这就是为什么你不需要其他4个案例的原因:

镜像

  • 这通常用于提高数据库服务器的可用性,并在发生灾难时提供自动故障转移。
  • 通常,即使您拥有多个数据库副本(建议位于不同的服务器实例上),但一次只能激活其中一个,称为主服务器。
  • 此服务器实例上的每个操作都会在其他操作上连续镜像(尽快),因此不适合您的用例。

日志传送

  • 在这种情况下,除了生产数据库服务器之外,您还有额外的故障转移服务器,以便生产服务器的数据库,差异和数据库的备份。事务日志会自动发送(复制)到故障转移并恢复。
  • 此处的复制相对安排在比其他机制更长的时间间隔,通常为一小时到几个小时。
  • 这还可以在生产站点发生灾难时手动准备好故障服务器。
  • 这也不适合您的使用案例。

合并复制

  • 这与其他人之间的主要区别在于,复制的数据库实例可以与不同的客户端应用程序进行通信,而与彼此之间的更改无关。
  • 例如,北美的数据库服务器由美洲和美国的客户更新。欧洲和澳大利亚的另一个正在由亚太地区的客户更新,然后这些变化相互融合。
  • 同样,它不适合您的用例。

快照复制

  • 发布数据库的整个快照以复制到辅助数据库(与仅用于复制的日志文件不同。)
  • 但是,最初,对于每种类型的复制,都会生成一个快照来初始化订阅数据库,即只生成一次。

为什么要使用 交易复制

  • 您可以选择连续复制对象(表格,视图等),因此如果只有一部分表用于报告,则可以节省大量带宽。这在镜像日志传送中无法实现。
  • 您可以将流量从应用程序重定向到报告服务器以获取所有读取报告(您也可以在其他人中执行此操作,顺便说一下)。
  • 您可以拥有独立的批处理作业,生成报告服务器上运行的一些更常用的报告,如果它经常插入,更新或删除,则会减少主服务器上的负载。

答案 1 :(得分:6)

从上到下浏览您的列表。

  1. 镜像:如果您将数据从主服务器镜像到reportServer,则将能够访问您的reportServer。 镜像将镜像数据库置于连续恢复状态。镜像是一种高可用性解决方案。在您的情况下,只有在进行故障转移时,reportServer才可用于查询。故障转移之前,镜像服务器永远不会运行。这不是您想要的,因为您无法使用reportServer直到它正常运行。

  2. 日志传送:日志传送将允许您将计划事件的事务日志备份应用于reportServer。如果每15分钟备份一次事务日志并将数据应用于reportServer,则主服务器和日志服务器之间的延迟将超过15分钟。镜像实际上是实时日志传送。根据您设置日志传送的方式,您的客户端必须在数据库忙于恢复日志文件时断开连接。因此,在长期恢复期间,可能无法使用报告。日志传送也是一种高可用性功能,对报告不是很有用。有关在尝试恢复数据库时尝试访问数据库的说明,请参阅此链接http://social.msdn.microsoft.com/forums/en-US/sqldisasterrecovery/thread/c6931747-9dcb-41f6-bdf4-ae0f4569fda7

  3. 复制:我在这里将所有复制集中在一起。复制尤其是事务复制可以帮助您扩展报告需求。它通常会更容易实现,而且您也可以在镜像中报告数据时,您无法报告事务日志传送中的数据,您将有差距。因此,在您的情况下,复制更有意义。如果您的报告可以说是一天之前,快照复制将非常有用。您可以每天早上从mainServer创建所需数据的快照,并将其发布到订阅者reportServer。但是,如果数据库非常大,那么Snapshot每天都会遇到问题。合并复制仅在您要更新复制数据时才有用。在您的情况下,您希望拥有要报告的数据的只读副本,因此合并复制不会有所帮助。事务复制允许您通过线路发送复制。如果您需要在reportServer中经常更新信息,这将非常有用。我可能会建议你这条路线。

  4. 请记住,通过实施复制/镜像/日志传送,您将创建更多维护工作。复制CAN失败。因此可以镜像,因此可以进行事务日志传送。您需要监控这些解决方案,以确保它们顺利运行。所以问题是你真的需要将你的报告扩展到另一台服务器,或者花时间找出你不能在生产服务器上报告的原因吗?

    希望有所帮助!