存储报表服务器内容并将报表服务器内容和 SharePoint 数据库同步

将报表服务器配置为在 SharePoint 集成模式下运行时,报表服务器将使用 SharePoint 配置和内容数据库以及自己的内部数据库来存储内容和元数据。

Reporting Services 和 SharePoint 均为分布式服务器应用程序,它们允许您在单独的计算机上运行服务和内部数据库。每种服务器用于存储不同类型的数据。多个 SQL Server 关系数据库将为这两种服务器提供内部存储。知道每种服务器上存储哪些类型的数据有助于您了解这些服务器如何协同工作。同时还会提供有关背景信息,可帮助您就如何分配磁盘空间和计划数据库备份做出决策。

以下关系图显示了在 SharePoint 集成模式下运行的报表服务器部署中使用的整套数据库。

数据库关系图

SharePoint 配置数据库

每个 SharePoint Web 应用程序都具有用来存储应用程序设置的配置数据库。设置 SharePoint Foundation 2010 或 SharePoint Server 2010 的实例与报表服务器配合使用时,您要在 SharePoint 管理中心中指定配置设置。您所指定的设置将存储在此数据库中。设置包括报表服务器的 URL、报表服务器服务的帐户信息、服务器上使用的身份验证提供程序的相关信息,以及用来限制或启用报表历史记录和日志记录的站点级设置。有关详细信息,请参阅将 Reporting Services 配置为 SharePoint 2010 集成模式

SharePoint 内容数据库

每个 SharePoint Web 应用程序都具有一个或多个内容数据库,这些内容数据库用来存储通过服务器访问和管理的文档和属性。对于配置为 SharePoint 集成模式的报表服务器,SharePoint 内容数据库会为已发布报表、报表模型、共享数据源、资源、属性和权限提供主存储。

报表服务器数据库和报表服务器临时数据库

每个报表服务器实例或扩展部署都使用单个报表服务器数据库来存储持久性数据。临时数据被隔离放置在辅助数据库。这样使您能够创建不同的备份计划并为每个备份计划设置不同的增长属性。每个报表服务器数据库都有一个临时数据库。作为一种性能改进方式,临时数据库用于存储仅为订阅处理、交互式报表或报表缓存创建的会话数据和临时快照。

报表服务器数据库中存储的数据包含用于报表历史记录或报表执行的计划、订阅和快照。报表服务器数据库还会维护存储在 SharePoint 内容数据库中的内容文件的内部副本。存储内部副本会减少将文件发送到报表服务器进行处理的次数,从而提高性能。同步和验证检查会确保报表、模型和数据源相同。

重要说明重要提示

报表服务器数据库可以支持本机模式操作,也可以支持 SharePoint 集成模式,但不能同时支持两者。如果创建支持 SharePoint 集成模式的报表服务器数据库,则以后无法转换或迁移该数据库,以便使用本机模式报表服务器实例运行。报表服务器数据库包含特定于模式的元数据(具体而言,是项位置和权限信息),此元数据在另一模式下不兼容。

数据库连接、权限和登录名

配置报表服务器或者 Windows SharePoint Services 或 Office SharePoint Server 实例的用户必须是计算机上的本地管理员或内置 Administrators 组的成员。

报表服务器服务要求具有到 SharePoint 内容数据库的数据库连接,但不要求连接到配置数据库。报表服务器集成设置将使用在安装 Windows SharePoint Services 时为管理中心工具的用户创建的登录名和权限存储在配置数据库中。

而报表服务器服务将在 SharePoint 内容数据库中创建、更新和删除项和属性。连接信息、登录名和数据库权限将在使用管理中心指定可信帐户时配置。

Windows SharePoint Services 或 Office SharePoint Server 实例不会添加或检索报表服务器数据库中的数据。所有请求都会定向到报表服务器,然后报表服务器会使用自己的连接设置访问报表服务器数据库。

用来在报表服务器上查看项或执行操作的权限是由 Windows SharePoint Services 或 Office SharePoint Server 实例进行管理的。在将请求发送到报表服务器之前,将先执行身份验证和安全性检查。每个请求都会带有一个包含权限信息的安全令牌,这种权限信息会确定是处理请求还是拒绝请求。

数据库维护

报表服务器将执行日常维护以从报表服务器数据库中删除 SharePoint 站点中已删除的孤立报表快照、报表历史记录、计划和订阅。孤立项是与 SharePoint 内容数据库中的父项不再具有关联的那些项。

每天,报表服务器都会验证存储在报表服务器数据库中的项是否与 SharePoint 内容数据库中存在的报表有关联。若要修改清除进程的频率,请在 RSReportServer.config 文件中添加 DailyCleanupMinuteofDay 配置设置。清除进程是在后台运行,并使用在配置文件中定义的计划信息。无法按需运行该进程。

如果 Windows SharePoint Services 或 Office SharePoint Server 的实例不可用(例如,服务器脱机的情况下),将不会执行清除操作。如果还原含有旧数据(这些旧数据与当前存储在 SharePoint 数据库中的项不对应)的报表服务器数据库,则在下次运行清除进程时将删除这些项。

清除进程只删除内容;并不会同步或更新存储在 SharePoint 内容数据库中的报表服务器项。默认情况下,会在每天凌晨 2:00 运行清除进程。

若要指定其他时间,必须在 RSReportServer.config 文件中添加 DailyCleanupMinuteofDay 并设置成其他值。例如:

<Add Key=" DailyCleanupMinuteOfDay " Value="120" />

默认情况下 RSReportServer.config 文件中没有此设置。若要添加此设置,请复制相应条目并将其放置在该部分中的Configuration 元素(其他 Add 元素旁边)下。该值为中午 12:00 后的时间(用分钟表示),其最小值为 30,最大值为 1380(23 小时)。

同步和验证操作

为了确保报表服务器上存储的用于内部处理的副本与 SharePoint 库中的原始项相同,报表服务器在处理请求之前将先执行同步和项验证步骤。

同步是一个用来创建、更新或删除存储在报表服务器数据库中的项的内部副本的进程。报表服务器会检索 SharePoint 库中的项和属性,并将它们存储在报表服务器数据库中。时间戳信息是进行比较的基础。时间戳是以 UTC 格式存储的。如果报表服务器和 SharePoint 站点或场位于不同的时区,则存储时间戳时时间戳会转换成本地服务器时间。

验证是一个用来确定是否需要同步的步骤。如果原始项的时间戳与内部副本的时间戳相同,则不执行同步。

如何同步项

同步由报表服务器执行。同步是一个每次创建、更新或检索项时都会自动触发的后台进程。您无法管理、配置或显式控制同步操作。同步只限于特定的创建项或更新项请求。不存在同时调整所有项和属性的全局同步操作。若要手动将报表、报表模型或共享数据源同步,则必须运行报表、报表模型或共享数据源。

如果报表服务器数据库中不存在某项或者报表服务器数据库中的项早于 SharePoint 库中的对应项,则将创建或更新该项的内部副本。响应下列事件时会创建内部副本:

  • 请求报表或报表模型。此时将创建报表、报表模型和由任意一项引用的任何共享数据源的内部副本。

  • 将报表或报表模型从报表设计器或模型设计器发布到 SharePoint 库。在项添加到 SharePoint 内容数据库后,将创建该报表或模型的副本并将其添加到报表服务器数据库。如果同时发布共享数据源和报表模型,则直到使用该共享数据源时才会创建其内部副本。

在 SharePoint 站点上使用**“上载”**操作将会延迟报表服务器数据库中内部副本的创建。对于任何上载的报表服务器项,请求该项时将创建其内部副本。

对于用于报表的外部图像文件,或专门存储在报表服务器数据库中的计划、快照或订阅,将不会创建任何内部副本。

关于配置设置和权限

尽管必须在这两种服务器上正确定义配置设置,但同步进程不包含这些配置设置。如果更改报表服务器服务帐户、URL、身份验证类型,或者更改报表服务器的服务器执行模式使该报表服务器在本机模式下运行而不是在 SharePoint 集成模式下运行,则必须在 SharePoint 管理中心或 Reporting Services 配置工具中显式更新服务器配置设置。

对 SharePoint 站点或场设置的权限由报表服务器使用。SharePoint 站点或场与报表服务器之间不存在权限同步。

服务器可用性与同步失败

将项、属性和操作同步要求部署所包含的所有计算机和连接都是可用的并且处于正常运行状态。满足以下条件时将不执行同步:

  • 服务器或后端数据库脱机或不可用。

  • 任何服务器或后端数据库的连接信息无效。例如,如果 URL 更改不正确或更改了服务帐户或密码。

  • 在没有首先将服务器脱机的情况下修改连接信息,打乱了同步操作的时间安排和顺利进行。

如果是由于服务器不能互相连接或服务器不能连接到其后端数据库而导致不能同步,则在连接恢复并请求特定报表、报表模型、共享数据源或订阅时,该报表服务器将会协调不同步的内容或元数据。

如果同步失败,将发生rsItemNotFound 错误。也就是说,在 SharePoint 库中未找到该项。