我在一个实例中安装了SQL Server数据库(mainserver),在其他实例中安装了RerportServer的SQL Server数据库。将数据从mainServer复制到报表服务器的最佳方法是什么? mainServer 中的数据经常变化,而ReportSever中的实际信息非常重要。
有很多方法可以做到这一点:
有关于此的一些最佳做法吗? 感谢
答案 0 :(得分:11)
您的案例需要交易复制。这就是为什么你不需要其他4个案例的原因:
为什么要使用 交易复制 ?
答案 1 :(得分:6)
从上到下浏览您的列表。
镜像:如果您将数据从主服务器镜像到reportServer,则不将能够访问您的reportServer。 镜像将镜像数据库置于连续恢复状态。镜像是一种高可用性解决方案。在您的情况下,只有在进行故障转移时,reportServer才可用于查询。故障转移之前,镜像服务器永远不会运行。这不是您想要的,因为您无法使用reportServer直到它正常运行。
日志传送:日志传送将允许您将计划事件的事务日志备份应用于reportServer。如果每15分钟备份一次事务日志并将数据应用于reportServer,则主服务器和日志服务器之间的延迟将超过15分钟。镜像实际上是实时日志传送。根据您设置日志传送的方式,您的客户端必须在数据库忙于恢复日志文件时断开连接。因此,在长期恢复期间,可能无法使用报告。日志传送也是一种高可用性功能,对报告不是很有用。有关在尝试恢复数据库时尝试访问数据库的说明,请参阅此链接http://social.msdn.microsoft.com/forums/en-US/sqldisasterrecovery/thread/c6931747-9dcb-41f6-bdf4-ae0f4569fda7
复制:我在这里将所有复制集中在一起。复制尤其是事务复制可以帮助您扩展报告需求。它通常会更容易实现,而且您也可以在镜像中报告数据时,您无法报告事务日志传送中的数据,您将有差距。因此,在您的情况下,复制更有意义。如果您的报告可以说是一天之前,快照复制将非常有用。您可以每天早上从mainServer创建所需数据的快照,并将其发布到订阅者reportServer。但是,如果数据库非常大,那么Snapshot每天都会遇到问题。合并复制仅在您要更新复制数据时才有用。在您的情况下,您希望拥有要报告的数据的只读副本,因此合并复制不会有所帮助。事务复制允许您通过线路发送复制。如果您需要在reportServer中经常更新信息,这将非常有用。我可能会建议你这条路线。
请记住,通过实施复制/镜像/日志传送,您将创建更多维护工作。复制CAN失败。因此可以镜像,因此可以进行事务日志传送。您需要监控这些解决方案,以确保它们顺利运行。所以问题是你真的需要将你的报告扩展到另一台服务器,或者花时间找出你不能在生产服务器上报告的原因吗?
希望有所帮助!