我正在寻找一些帮助/建议,将两个大型数据库备份到一个专用于报告的服务器。情况是这样的;
我公司的内部网站有两个数据库。一个用于英国,一个用于欧洲。两者都镜像为DR。
我有一个位于欧洲的服务器,专门用于Microsoft Reporting Services,我们根据这两个数据库中收集的数据运行报告。
出于性能/安全原因,我们不希望将报告服务指向实时数据库,因此我们目前每天备份这两个数据库并将其还原到Reporting Services服务器。
然而,这意味着我们通过备份整个数据库给我们的网络带来了压力,而且数据只是在昨天午夜之前才更新。
我们的目标是让数据最新至少15分钟,有人建议查看Log Shipping所以我想知道是否有人有任何设置这个的经验,有什么利弊,是否有是一个更好的选择吗?
任何帮助都会非常感激, 感谢
答案 0 :(得分:2)
日志传送是一个很好的解决方案。我们在SQLServerPedia's Log Shipping section收到了关于它的文章,我有一个视频教程,通过你的不同选项与你交谈。关于日志传送要记住的一件事是,当恢复发生时,您的用户将被踢出报告数据库。
复制没有那个问题,但复制远没有“设置它忘记它” - 管理时间很长,而且不像你想要的那样可靠。此外,您可能必须进行架构修改才能使用复制。日志传送更自动&稳定,但代价是在恢复时将用户踢出去。
您可以通过制定两个日志传送时间表来最小化 - 一个用于工作时间的白天,另一个用于其余时间。在工作时间,您只能每小时(或更少)恢复一次数据,其余时间每15分钟恢复一次。
答案 1 :(得分:2)
我们开发了类似的环境。我们使用Mirroring将数据发送到报告服务器,并创建了一个自动例程,每15分钟创建一次数据库快照。这些快照在我们的环境中只需1到2秒即可创建,并为我们提供数据库的只读副本。如果您希望我深入了解详情,请与我们联系。
注意我们在两台服务器上都运行Enterprise。
答案 2 :(得分:1)
您应该将replication视为备份的替代方案。
答案 3 :(得分:1)
我建议你研究使用事务复制。
听起来好像您正在寻找与我们目前正在实施的方案类似的方案。
我们使用事务复制(尽管是实时的,您很可能希望以较不频繁的时间表同步环境)将我们的实时生产数据库的副本卸载到另一台服务器以进行报告。
卸载报告数据是一种常见的复制方案,此处在Microsoft Replication文档中进行了描述。
http://msdn.microsoft.com/en-us/library/ms151784.aspx
布伦特是正确的,因为复制中确实需要一个配置元素,以及需要解决的安全注意事项,但在我看来,使用复制有许多关键优势,包括:
例如,在我们的环境中,我们决定仅复制生产数据库中我们实际需要报告的特定表(文章)。
我希望我所描述的内容清晰明确,但如果您有任何疑问,请随时与我联系。