规划扩展部署
报表服务器扩展部署是指共享单个报表服务器数据库的两个或更多个报表服务器实例。使用扩展部署可增加并发访问报表的用户数,并提高报表服务器的可用性。使用此部署拓扑时,虽然没有要求,但建议您使用相同的设置来配置报表服务器实例。您可以针对特定的功能配置每个服务器,并将它们作为独立的实例来运行,例如,希望交互式报表处理与计划的报表处理或订阅报表处理采用不同的服务器。
以下列标概括了扩展部署所支持的方案:
-
在负载平衡解决方案中运行报表服务器实例,以支持大容量按需运行报表。
-
提高报表服务器的可用性。
-
在各特定计算机上放置不同的服务功能,以便最充分地利用所有可用的系统资源,同时仍然可以在同一个报表服务器数据库中存储和检索同样的数据。
扩展部署具有以下要求。
要求 |
说明 |
---|---|
版本类别要求 |
以下版本支持扩展部署:Enterprise、Developer 和 Evaluation。 Standard、Workgroup 和 Express 版本不支持扩展部署。 |
版本要求 |
所有报表服务器的主版本必须相同,并且必须具有相同的更新和 Service Pack。 |
域要求 |
所有报表服务器必须位于同一个域中或位于可信域中。 |
身份验证要求 |
扩展部署中的报表服务器实例必须具有相同类型的身份验证扩展插件。如果您创建了自定义身份验证扩展插件,必须在所有节点上部署和使用该扩展插件。您应将扩展部署的每个节点配置为使用相同的身份验证类型。 由于存在这一限制,您不能将扩展部署配置为支持以下操作:通过不同的报表服务器实例对同一报表服务器数据库同时进行 Intranet 和 Extranet 访问,其中,每个实例是针对不同的身份验证类型和授权规则而配置的。 存在这一限制的原因是,Reporting Services 不会在不同身份验证类型之间同步自定义权限设置。如果您对特定项中断权限继承,并创建角色分配,那么,如果某个用户是通过其他身份验证提供程序进行身份验证的,这样的用户在访问此特定项时,就会出现拒绝访问错误。为了解决这个问题,您必须通过两个服务器复制每个项特定角色分配,以便为两个身份验证扩展插件实现双重安全策略。这种做法很费力并且易于出错,因此很可能导致拒绝访问错误。出于这一原因,不支持该方案。 |
本主题的其余内容提供了有关支持的方案的更多详细信息。
在您配置报表服务器扩展部署后,报表服务器节点可以在网络负载平衡 (NLB) 群集中实现负载平衡,从而支持大容量报表。可以使用软件或硬件解决方案来实现 NLB 群集。仅当为了提高报表服务器的响应能力或增加可同时处理的交互式报表数时,在 NLB 群集中部署 Reporting Services 才是必需的。计划报表和订阅处理在扩展部署中的速度更快,但不要求使用 NLB 群集来获得更快的性能。
若要创建和配置 NLB 群集,必须使用可支持该功能的软件和工具。Microsoft Windows Server 操作系统和第三方应用程序中有负载平衡功能。Reporting Services 本身并不提供负载平衡功能或定义单个虚拟服务器 URL 以访问多个报表服务器节点的功能。您选择的硬件或软件解决方案必须提供这样一种方法:定义一个虚拟服务器名称,它能提供对报表服务器扩展中的所有节点的单个入口点。
Reporting Services 不能识别 Microsoft 群集服务。如果您使用 Microsoft 群集服务,请查看以下信息:
-
如果 Reporting Services 在使用 Microsoft 群集服务的主动-被动群集上运行,则报表服务器服务将在部署该服务的每个群集节点上运行并处理请求。
-
如果报表服务器数据库位于属于故障转移群集的 SQL Server 上,则报表服务器必须配置为使用故障转移群集的虚拟名称连接到报表服务器数据库。否则,发生故障转移时,报表服务器将无法连接到报表服务器数据库。
-
您不能通过 SQL Server 故障转移群集对 Microsoft 群集服务部署报表服务器。但是,可在 SQL Server 安装过程中使用“仅文件”选项安装报表服务器。
配置部署
-
将两个或多个服务器配置为在一个 NLB 群集中运行。
-
将一个单独的服务器配置为承载报表服务器数据库。
-
通过在 NLB 群集的每个节点上安装报表服务器实例来安装并配置报表服务器扩展部署。有关如何安装报表服务器并将它们加入到扩展部署的详细信息,请参阅如何配置报表服务器扩展部署(Reporting Services 配置)。
-
配置视图状态验证并检查报表服务器配置。有关详细信息,请参阅如何在网络负载平衡群集上配置报表服务器。
-
在扩展部署中的每个节点上,将报表服务器的 Hostname 属性配置为使用 NLB 的 URL 名称。本步骤将报表服务器生成的 URL 配置为指向 NLB,而不是指向特定服务器。有关详细信息,请参阅如何在网络负载平衡群集上配置报表服务器。
提高报表服务器性能的一项技术是配置扩展部署,在该部署中向每个报表服务器分配特定处理类型。例如,可以将一个报表服务器配置为处理计划报表和订阅处理,将另一个报表服务器配置为处理交互式报表。由于这些报表服务器在同一扩展部署中运行,因此每个服务器处理同一组报表。
配置部署
-
安装和配置报表服务器扩展部署。有关说明,请参阅如何配置报表服务器扩展部署(Reporting Services 配置)。
-
在用于处理交互式报表的服务器上,关闭计划报表和订阅处理。
-
在用于后台处理的另一个服务器上,关闭报表服务器 Web 服务和报表管理器。
有关如何关闭特定功能的详细信息,请参阅如何打开或关闭 Reporting Services 功能。
不同版本的操作系统支持不同的区域性和排序规则。
如果您的扩展部署包括的计算机运行不同版本的操作系统,则它们也可能支持不同的区域性和排序规则。这在处理和呈现报表时可能引起报表不一致或报表错误。
设计报表时,报表作者针对报表或报表对象属性的配置,可能影响处理和呈现报表时所用的区域性。这可能造成报表数据不一致或错误,因为不同版本的操作系统支持不同的区域性,致使扩展部署中的同一服务器不能一致地处理这些报表。
例如,您的扩展部署中可能包括一台 Windows 2003 服务器和一台 Windows 2008 服务器。在扩展部署中,Reporting Services 假定您的网络环境将使用软件或硬件将请求以负载平衡的方式发送到不同服务器。但是,Reporting Services 并不要求或不认定您的负载平衡解决方案要将某个用户会话中的所有请求定向到某一个服务器。负载平衡器会随意地将一页请求发送到 Windows 2008 服务器,下一页请求发送到 Windows 2003 服务器。在本例中,正在处理的报表依赖于 Windows 2008 服务器而不是 Windows 2003 服务器所支持的排序规则。在报表处理和呈现过程中若不能一致地提供所需排序规则,则可能造成报表结果的不一致。下面举例说明了您可能遇到的一些问题:
-
需要执行进一步的分组、排序或筛选的报表处理任务可能使用不正确的排序规则进行比较,导致结果不正确。
-
HideDuplicates 功能可能使用错误的排序规则,导致错误地隐藏和显示各个值。
-
Lookup、LookupSet 和 MultiLookup 功能可能使用错误的排序规则,导致结果不正确。
不同操作系统上的处理操作可能影响与区域性和语言交互的任何属性。以下列出了部分(而不是所有)受影响的属性:
-
报表的语言属性
-
数据集的排序规则属性
-
报表项的 LableLocId 和 ValueLocID 属性
若要解决此问题,请考虑以下方法:
-
在扩展部署中的所有服务器上使用相同版本的操作系统
-
如果具有不同版本的操作系统,在报表创作中仅使用在所有服务器上都受支持的区域性。
-
在负载平衡解决方案中设置关联,以便针对某个报表和用户会话的所有请求都转至同一服务器。