SharePoint Server 中的 RBS 概述

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

本文介绍如何将 SharePoint Server 与远程 BLOB 存储 (RBS) 和 SQL Server 一起使用,以优化数据库存储资源。

在您实现 RBS 之前,强烈建议您评估其潜在成本和好处。 有关如何在 SharePoint Server 安装中使用 RBS 的详细信息及建议,请参阅决定在 SharePoint Server 中使用 RBS

注意

[!注意] 除非另外指定,否则本文中的信息特定于使用 FILESTREAM 提供程序的 RBS。 有关特定于其他提供程序的指南,请与提供程序制造商联系。

RBS 简介

在 SharePoint Server 中,BLOB) (二进制大型对象是存储在数据库中的一大块数据,其大小和位置而不是其结构(例如 Office 文档或视频文件)。 默认情况下,这些 BLOB(也称为非结构化数据)直接与相关联的元数据或结构化的数据存储在 SharePoint 内容数据库中。 因为这些 BLOB 可能会非常大,所以最好将 BLOB 存储在内容数据库的外面。 BLOB 是不可变的。 因此,必须为该 BLOB 的每个版本都存储一个该 BLOB 的新副本。 正因为如此,随着数据库的使用率的增加,BLOB 数据的总大小会快速攀升并超过文档元数据以及存储在数据库中其他结构化的数据的总大小。 BLOB 数据会占用大量空间,并使用针对数据库访问模式进行了优化的服务器资源。 因此,这会有助于将 BLOB 数据移出 SQL Server 数据库并放置在商品或内容寻址存储空间中。 若要执行此操作,可以使用 RBS。

RBS 是经过合并的一个 SQL Server 库 API 集,它作为一个外接程序功能包,可在你安装以下内容时将其进行安装:

  • SQL Server 2019

  • SQL Server 2017

  • SQL Server 2016

  • SQL Server 2014 Service Pack 1 (SP1)

  • SQL Server 2014

  • SQL Server 2012

  • SQL Server 2008 R2 Express

  • SQL Server 2008 R2

  • SQL Server 2008

RBS 功能使应用程序(例如,SharePoint Server)能够将 BLOB 存储在内容数据库外部的某个位置。 在外部存储 BLOB 可降低对 SQL Server 数据库存储空间的需求量。 每个 BLOB 的元数据存储在 SQL Server 数据库中,而 BLOB 存储在 RBS 存储中。

SharePoint Server 使用 RBS 功能将 BLOB 存储在内容数据库的外部。 SQL Server 和 SharePoint Server 以每个数据库为基础,共同管理数据库记录与 RBS 外部存储的内容之间的数据完整性。

RBS 由以下组件构成:

  • RBS 客户端库

    RBS 客户端库包含一个对 BLOB 存储与 SharePoint Server、SQL Server 和 RBS 提供程序组件进行协调的托管库。

  • 远程 BLOB 存储提供程序

    RBS 提供程序包含一个托管库以及可选的一组与 BLOB 存储进行通信的本机库。

    RBS 提供程序的一个示例是 SQL FILESTREAM 提供程序。 SQL FILESTREAM 提供程序是 SQL Server 2014 Service Pack 1 (SP1) 或更高版本的 SQL Server 的加载项功能,它通过使用 SQL Server 2014 (SP1) 或更高版本和 NTFS 文件系统的组合,实现 BLOB 数据的存储和高效访问。 有关 FILESTREAM 的详细信息,请参阅 FILESTREAM (SQL Server) 有关如何启用和配置 FILESTREAM 的信息,请参阅 启用和配置 FILESTREAM

  • BLOB 存储

    BLOB 存储是用于存储 BLOB 数据的实体。 它可以是内容可寻址的存储 (CAS) 解决方案、支持服务器消息块 (SMB) 的文件服务器或 SQL Server 数据库。

RBS 提供程序

RBS 使用提供程序 连接到使用 RBS API 的任何专用 BLOB 存储。 SharePoint Server 通过此类提供程序来使用 RBS API,从而支持可访问 BLOB 数据的 BLOB 存储实现。 存在两种类型的 RBS 提供程序:本地和远程。

RBS 提供程序存储 BLOB 数据的位置取决于所使用的提供程序。 对于 FILESTREAM 提供程序,数据不会存储在 .mdf 文件中。 相反,它存储在与数据库关联的另一个文件夹中。

本地 RBS 提供程序

本地提供程序将 BLOB 存储在数据库外部,但仍存储在运行 SQL Server 的相同服务器上。 您可通过使用本地 RBS FILESTREAM 提供程序将提取的 BLOB 数据放置在不同的(即,资源利用率较少的)本地磁盘上来节省资源。 由于 BLOB 与元数据存储在相同的文件组中,因此可以使用 SharePoint Server 功能,例如,管理中心 中的备份和还原功能。

安装 SQL Server 2014 Service Pack 1 (SP1) 或更高版本的 SQL Server 时,RBS FILESTREAM 提供程序可用作加载项。 RBS FILESTREAM 提供程序使用 SQL Server FILESTREAM 功能,将 BLOB 存储在其他资源中,此资源附加到同一数据库,且存储在本地服务器上。 FILESTREAM 功能可使用基础 NTFS 文件系统在 SQL 数据库中管理 BLOB。

重要

[!重要说明] 本地 FILESTREAM 提供程序仅在用于本地硬盘驱动器或连接的 Internet 小型计算机系统接口 (iSCSI) 设备时才受支持。 无法在远程存储设备(如网络附加存储 (NAS))上使用本地 RBS FILESTREAM 提供程序。

远程 RBS 提供程序

远程 RBS 提供程序将 BLOB 存储在单独的服务器上。 这通常位于数据库服务器所在的同一网络的其他卷上。

由于 BLOB 不与元数据存储在同一文件组中,因此某些 SharePoint Server 功能(例如,在管理中心进行备份和还原)无法与远程 RBS 提供程序一起使用。 必须将元数据和 BLOB 分开管理。 有关能够与提供程序一起使用的功能的详细信息,请与提供程序制造商联系。

将 RBS 与 SharePoint Server 一起使用

SharePoint Server 订阅版本支持 SQL Server 2019 及更高版本的 SQL Server 中包含的 FILESTREAM 提供程序。 此版本的 RBS 包含在 SQL Server 安装媒体上,但 SQL Server 安装程序未安装。

SharePoint Server 2019 支持 SQL Server 2016 和 SQL Server 2017 中包含的 FILESTREAM 提供程序。 此版本的 RBS 包含在 SQL Server 安装媒体上,但 SQL Server 安装程序未安装。

SharePoint Server 2016 支持包含在 SQL Server 2014 (SP1) 中的 FILESTREAM 提供程序。 此版本的 RBS 包含在 SQL Server 安装媒体上,但 SQL Server 安装程序未安装。

SharePoint 2013 支持 SQL Server 2008 R2 功能包中提供的 SQL Server 远程 BLOB 存储安装包、SQL Server 2012 和 SQL Server 2014 中的 FILESTREAM 提供程序。 这些版本的 RBS 在下列位置提供。

请注意以下事项:

  • SQL Server 2019 及更高版本的 SQL Server 的 SQL Server 远程 BLOB 存储安装包是 SharePoint Server 订阅版支持的唯一 RBS 版本。
  • 适用于 SQL Server 2016 和 SQL Server 2017 的 SQL Server 远程 BLOB 存储安装包是 SharePoint Server 2019 支持的唯一 RBS 版本。
  • 适用于 SQL Server 2014 的 SQL Server 远程 BLOB 存储安装包是 SharePoint Server 2016 支持的唯一 RBS 版本。
  • SQL Server 2008 R2 功能包中提供的 SQL Server 远程 BLOB 存储安装包 及更高版本是 SharePoint 2013 唯一支持的 RBS 版本。 不支持早期版本。

也可以将第三方 RBS 提供程序与 RBS API 结合使用,以创建与 SharePoint Server 兼容的 BLOB 存储解决方案。

在 SharePoint Server 中,网站集备份和存储以及网站导入或导出将会下载文件内容,并将其上载回服务器,而不考虑使用的是哪个 RBS 提供程序。 此过程称为深层复制。 但是,FILESTREAM 提供程序是 SharePoint Server服务器场数据库备份和还原操作当前所支持的唯一提供程序。

若要使用 RBS,则您必须在安装了 SharePoint Server 的每台服务器上以及拓扑中的每台数据库服务器上安装一个 RBS 提供程序。 该提供程序包括一组实现 RBS API 的方法并执行将 BLOB 外部化的实际操作的 DLL。

注意

[!注意] 如果在 SharePoint Server 应用程序服务器上运行的 Visio Web 服务没有安装 RBS 提供程序,则在尝试从该服务器打开 Visio 关系图时发生 Visio 错误。 如果想要在该服务器上打开 Visio 关系图,则必须在运行 Visio Graphics Service 的 SharePoint Server 服务器上安装 RBS 客户端。

SharePoint Server 订阅版本: 若要在远程服务器上运行 RBS,必须在运行 SQL Server 的服务器上运行 SQL Server 2019 或更高版本的 SQL Server Enterprise,其中元数据存储在数据库中。

如果计划将 BLOB 数据存储在不同于 SharePoint Server 订阅版内容数据库的 RBS 存储中,则必须运行 SQL Server 2019 或更高版本的 SQL Server。 这一点对于所有 RBS 提供程序均适用。

SharePoint Server 2019: 若要在远程服务器上运行 RBS,必须在运行 SQL Server 的服务器上运行 SQL Server 2016 或 SQL Server 2017 Enterprise,其中元数据存储在数据库中。

如果计划在不同于 SharePoint Server 2019 内容数据库的 RBS 存储中存储 BLOB 数据,则必须运行 SQL Server 2016 或 SQL Server 2017。 这一点对于所有 RBS 提供程序均适用。

SharePoint Server 2016:若要在远程服务器上运行 RBS,则必须在运行 SQL Server 的服务器(其中,元数据存储在数据库中)上运行 SQL Server 2014 (SP1) Enterprise。

如果您计划将 BLOB 数据存储在不同于您的 SharePoint Server 2016 内容数据库的 RBS 存储中,则必须运行 SQL Server 2014 (SP1)。 这一点对于所有 RBS 提供程序均适用。

SharePoint Server 2013:若要在远程服务器上运行 RBS,则必须在运行 SQL Server 的服务器(其中,元数据存储在数据库中)上运行 SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2014 Enterprise。

如果您计划将 BLOB 数据存储在不同于您的 SharePoint 2013 内容数据库的 RBS 存储中,则必须运行 SQL Server 2008 SP1 和累积更新 2、SQL Server 2012 或 SQL Server 2014。 这一点对于所有 RBS 提供程序均适用。

建议使用 FILESTREAM 提供程序从 Windows SharePoint Services 3.0 的独立安装升级,这些安装具有超过 4 GB (GB) 的内容数据库到 SharePoint 2013 会将本地数据与当前内容数据库相关联,并且不需要 SQL Server Enterprise。

重要

[!重要说明] 尽管 RBS 可用于在外部存储 BLOB 数据,但不支持通过使用 SharePoint Server 以外的任何工具或产品访问或更改这些 BLOB。 所有访问只能通过使用 SharePoint Server进行。

另请参阅

其他资源

二进制大型对象 (Blob) 数据 (SQL Server)

FILESTREAM (SQL Server)

远程 BLOB 存储提供程序库实现规范

Install and configure RBS with SharePoint 2013 and SQL Server 2012