gpt4 book ai didi

sql-server - 70 个数据库的 SQL Server 复制,并在短时间窗口内进行转换

转载 作者:行者123 更新时间:2023-12-02 02:09:16 25 4
gpt4 key购买 nike

我们有 70 多个 SQL Server 2008 数据库需要从 OLTP 环境复制到单独的报告服务器。复制数据库后,我们将进行一些部分数据转换:反规范化、行级安全性等。SSRS 报告将基于这些静态非规范化表和 View 编写。

我们每晚都有一个小窗口用于复制和转换所有 70 个数据库(3 小时)。目前数据库平均约为 10GB。

选项:

<强>1。事务复制:我们需要在每个报告数据库上创建 100 多个静态非规范化表。对所有 70 个数据库执行此操作几乎达到了我们每晚的时间限制。随着数据库的增长,我们将超过时间限制。我们考虑将非规范化表与 View 混合以加速转换。但是会有一些动态和一些静态数据,这不是我们可以使用的解决方案。还有 70 个数据库使用事务复制,我们担心带宽使用。

<强>2。快照复制:每晚复制整个数据库。这意味着我们可以混合使用非规范化的表和 View ,以便数据转换过程更快。但是快照是一个完整的数据副本,所以随着数据库的增长,我们将超过我们完成复制和转换的时间限制。

<强>3。日志传送:在我们每晚的窗口中,我们可以使用日志传送来更新报告数据库,然后截断并重新填充非规范化的表并使用一些 View 。但是,据我所知,使用日志传送时,无法将额外的表和 View 添加到订阅数据库。

<强>4。镜像:镜像已被弃用,但数据库在故障转移之前也不会处于事件状态以进行报告。

<强>5。 SQL Server 2012 AlwaysOn。我们还没有 SQL Server 2012,可以将其配置为每天更新一次而不是实时更新吗?是否可以在订阅数据库(我们的报告数据库)上创建额外的表和 View ?

6.合并复制:这是为了将多个数据源组合到一个数据库中。但是看起来它允许计划更新(每天一次)并且只使用最新更改更新订阅者数据库而不是执行整个快照。它需要向每个表添加一个 rowversion 列,但我们可以处理这个。此外,使用此解决方案是否可以在订阅者数据库上创建额外的表而不会导致更新不同步?

  1. 最后一个选项是我们使用 SSIS 仅从 OLTP 数据库中选择我们需要的数据。我认为此选项会带来更多风险,因为我们必须处理对非规范化表的插入/更新/删除,而不是每天删除和重新创建非规范化表。

如果您对我们的选择有任何帮助,我们将不胜感激。如果我做出了任何不正确的假设,请指出。

最佳答案

如果是我,我会选择连续运行的事务复制,并在订阅者处拥有 View (可能已编入索引)。这样做的好处是不必等待数据过来,因为它总是过来。

关于sql-server - 70 个数据库的 SQL Server 复制,并在短时间窗口内进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13574497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com