可缩放共享数据库概述

使用可缩放共享数据库的功能,您可以扩展专门为报表生成的只读数据库(“报表数据库”)。报表数据库必须驻留在一组专用的只读卷上,这些卷主要用于承载数据库。使用商用服务器硬件和商用卷硬件,您可以扩展报表数据库,使之在多台报表服务器中提供相同的报表数据视图。此功能还允许报表数据库使用平稳的更新路径。

在一组报表卷上生成报表数据库后,便会将卷标记为只读并将其装入多台报表服务器。然后在每台报表服务器上,报表数据库将附加到 Microsoft SQL Server 2005 或更高版本的实例,并可用作共享可缩放数据库。将报表数据库作为可缩放共享数据库建立后,使用不同报表服务器的客户端便可共享此数据库。若要查询数据库,用户或应用程序可以连接到任意一个附加有数据库的服务器实例。对于给定的报表数据库版本,不同服务器中的客户端获取相同的报表数据视图,以使各个服务器的查询结果一致。

优点

可缩放共享数据库具有下列优点:

  • 可使用商用服务器和硬件扩大报表数据库的工作负荷。

    多台服务器实例为生成报表(例如运行查询或使用 Reporting Services)而访问只读数据集市或数据仓库时,可缩放共享数据库是一种可实现这一用途的经济有效的方法。

  • 工作负荷隔离。

    每台服务器都使用其各自的内存、CPU 和 tempdb 数据库,从而防止某个不合理的查询占用所有的服务器资源。

  • 所有服务器都提供相同的报表数据视图。

    前提是假定所有服务器实例都以相同的方式进行配置,例如,它们使用一个单一的排序规则。

    注意注意

    您可以更新第二个报表卷上的报表数据库。有关详细信息,请参阅最大化可缩放共享数据库的可用性

限制

可缩放共享数据库具有下列限制:

  • 数据库必须位于只读卷上。

  • 数据文件可以通过 SAN 进行访问。

  • 该数据库只受在 Windows Server 2003 SP1 或更高版本上运行的 Windows Storage 支持。

  • 我们建议您将可缩放共享数据库的配置限制为:每个共享数据库接纳 8 个服务器实例。

  • 可缩放共享数据库不支持数据库快照。

重要说明重要提示

配置可缩放共享数据库要求存储区域网络环境正常运行。有关使用可缩放共享数据库的指南和建议,请参阅确保可缩放共享数据库有一个正确的环境

生成和扩展报表数据库

为了配置新的可缩放共享数据库,数据库管理员既可以从在一组报表卷上生成新的报表数据库开始,也可以从刷新这些卷上陈旧的报表数据库版本开始(“生成或刷新阶段”)。然后,管理员在多个服务器实例中将数据库配置为可缩放共享数据库,从而实现扩展(“附加阶段”)。

下图说明如何使用一个报表卷生成新的报表数据库,以及如何将报表数据库附加为可缩放共享数据库。

使用 1 个报表卷的可缩放共享数据库

图中的生成阶段说明了在生产服务器中装入报表卷并生成报表数据库的过程。将卷装入生产系统之后,将卷标记为可读写。然后,使用 SQL Server 2005 和更高版本提供的用于复制数据或数据库的数据复制方法之一,在卷上生成报表数据库。此图中的报表数据库是一个完整生产数据库的副本。生成数据库后,管理员将每个报表卷设置为只读并将其卸除。

此图中的附加阶段说明如何将报表数据库用作可缩放共享数据库。首先,管理员通过 SAN 将只读报表卷装入多台报表服务器。然后,在每台报表服务器中,管理员将报表数据库附加到 SQL Server 实例。因为卷是只读的,所以数据库作为只读数据库附加。在给定的报表服务器中完成此过程后,该服务器中的报表数据库便成为可缩放共享数据库。但是,在将数据库附加到所有报表服务器之前,附加阶段将继续作为一个整体执行。

只要给定的报表数据库版本附加到任何一台报表服务器中,它就可以作为可缩放共享数据库使用。

更新一组报表卷

由于报表数据库是只读的,因此,最终会变得陈旧,所以必须刷新该数据库以使报表数据保持为最新。对于可缩放共享数据库配置,在一组给定的报表卷上使用同一个报表数据库的最新版本替换该报表数据库的完整过程称为“更新循环”。

更新循环

更新循环从“分离阶段”开始,在卸除完所有报表服务器中的所有报表卷时结束。然后是“刷新阶段”(此阶段等同于新报表数据库的生成阶段)。当目前未装入任何服务器的只读卷上的数据库版本为最新时,刷新阶段便结束。最后,在附加阶段期间,数据库建立为可缩放共享数据库,此阶段中涉及的步骤与用于附加新报表数据库的步骤相同。

  • 分离阶段

    更新循环的第一阶段是从每台报表服务器的可缩放共享数据库配置中删除陈旧数据库。从作为可缩放共享数据库的服务中删除陈旧报表数据库的过程称为更新循环的“分离阶段”。必须在给定报表服务器中完成此阶段后,才能使报表数据库的新版本在该服务器中可用。

    为了删除数据库,数据库管理员需要停止从每个服务器实例进入该数据库的查询工作负荷。然后,管理员在每台报表服务器中分离数据库。当报表数据库从最后一个服务器实例分离时,便停止用作可缩放共享数据库。为了完成此阶段,管理员需要卸除包含陈旧数据库的一组报表卷。

  • 刷新阶段

    更新循环的下一个阶段需要刷新同一组报表卷上的数据库。刷新数据库需要通过导入当前生产数据更新数据库,或通过还原最近的生产数据库备份重新生成数据库。选择哪种刷新数据库的方法取决于您的业务需求。

  • 附加阶段

    若要完成一组报表卷的更新循环,管理员必须扩展已刷新的数据库。如果只有一组报表卷用于可缩放共享数据库配置,则更新期间的附加过程等同于最初的附加过程。

在两组报表卷之间交替使用数据库版本

为了最大限度地利用可缩放共享数据库配置,可以交替使用两组报表卷。这样便可使陈旧数据库和新数据库的更新循环共存一段时间。新的报表数据库驻留在另一组卷上。在分离陈旧的数据库版本并卸除它的卷之前,可以刷新一组备用卷上的数据库并将这些卷装入报表服务器。于是,当从给定的服务器实例中分离陈旧的数据库版本时,就可以立即附加新的版本。

有关详细信息,请参阅最大化可缩放共享数据库的可用性