执行可缩放共享数据库的滚动更新

如果使用备用的报表卷集更新可缩放共享数据库配置,则可以通过滚动更新或同步更新来更新数据库。如果允许客户端在更新期间针对不同的服务器实例暂时获取不同的结果,则适合使用滚动更新。

滚动更新一次完成一个报表服务器上的更新。在第一次更新和最后一次更新的间隔中,客户端的一个或多个服务器实例可以使用陈旧版本和新版本的数据库。通常,应尽快完成滚动更新以最大程度地减小两个版本的重叠期间。

下图说明了滚动更新。

滚动升级可缩放共享数据库

  1. 所有服务器中都装有卷 A,报表数据库附加到服务器实例,报表数据库在卷 B 上重新生成。
  2. 将卷 A 上的数据库从第一台报表服务器中的服务器实例分离,并卸除卷 A。立即将卷 B 装入到第一台报表服务器中,并将刷新的报表数据库附加到服务器实例。
  3. 将卷 A 上的数据库从第二台报表服务器中的服务器实例分离,并卸除卷 A。立即将卷 B 装入到第二台报表服务器中,并将刷新的报表数据库附加到服务器实例。
  4. 将卷 A 上的数据库从第三台报表服务器中的服务器实例分离,并卸除卷 A。立即将卷 B 装入到第三台报表服务器中,并将刷新的报表数据库附加到服务器实例。
  5. 随着卷 B 的装入,以及刷新的数据库作为可缩放共享数据库在所有报表服务器中可供使用,在卷 A 上执行报表数据库的生成操作。

根据您的业务要求,滚动更新可以相对开放,以允许完成当前的查询,否则需要在限定的时间范围内执行此更新操作。

开放的滚动更新

在此策略中,使用滚动更新,数据库管理员可以一边等待长时间运行的查询在一台报表服务器中完成,一边同时在另一台报表服务器中刷新数据库。此策略满足了下列业务需求:

  • 报表服务器不需要保持同步,也就是说,陈旧版本和新版本的数据库可暂时同时存在于不同的报表服务器中。
  • 对更新的完成没有时限要求,或者说最终期限没有保留当前执行的查询重要。

若要执行这种形式的滚动更新,请在每台报表服务器中执行下列操作:

  1. 通过将包含新数据库的备用卷集装入到报表服务器中,开始新数据库的附加阶段。
    ms345381.note(zh-cn,SQL.90).gif注意:
    即使对于滚动更新,您也可以在所有报表服务器中执行此步骤,然后在其中任一服务器中继续执行下一个步骤。
  2. 通过停止 I/O 活动,将所有正在进行的查询保留到原始报表卷。如果长时间运行的查询延迟了给定服务器实例上的更新,则要等待查询完成。当服务器实例上的所有查询都完成后,在此服务器中完成分离阶段。
  3. 将新报表数据库附加到服务器实例,使该数据库作为可缩放共享数据库用于报表查询。

在每台报表服务器中重复这些步骤。

报表服务器的滚动更新(迅速完成)

在此策略中,使用滚动更新,数据库管理员通过仅允许数据库的陈旧版本仍保留在某些报表服务器中以用于新查询,同时在另一台报表服务器中更新数据库来维护不间断的报表服务。此策略满足了以下业务需求:

  • 报表服务器不需要保持同步,也就是说,陈旧版本和新版本的数据库可暂时同时存在于不同的报表服务器中。
  • 您必须在最终期限到达之前尽快完成更新,这比保留当前执行的查询更为重要。

若要执行时效性的滚动更新,请一次在一台报表服务器中执行下列操作:

  1. 通过将包含新数据库的备用卷集装入到报表服务器中,开始新数据库的附加阶段。
    ms345381.note(zh-cn,SQL.90).gif注意:
    即使对于滚动更新,您也可以在所有报表服务器中执行此步骤,然后在其中任一服务器中继续执行下一个步骤。
  2. 停止报表卷上的 I/O 活动,还可以等待短时查询在服务器实例上完成,然后分离该实例的报表数据库。
  3. 在此服务器中完成分离阶段。
  4. 附加可用的新报表数据库,使其作为可缩放共享数据库用于报表。对数据库的新副本执行查询所得出的结果,可能不同于对报表数据库的剩余陈旧副本执行查询所得出的结果。

此类滚动更新可确保整体报表功能永不中断。这样便可在某些服务器实例上允许运行时间相当长的事务。但是,在给定了更新所有报表数据库的时限后,如果长时间运行的查询明显延迟了对服务器实例的更新,则需要终止该查询。当服务器实例的报表数据库刷新后,可以在该服务器实例上重新执行查询,或者在一台已更新的服务器中快速重新启动查询。

请参阅

概念

可缩放共享数据库概述
确保可缩放共享数据库有一个正确的环境
生成或刷新报表数据库
将报表数据库附加为可缩放共享数据库
分离可缩放共享数据库

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本 历史记录

2005 年 12 月 5 日

新增内容:
  • 添加了本主题(新的可缩放共享数据库功能)。