在 SharePoint Server 场中安装和配置附带 FILESTREAM 的 RBS

 

**上一次修改主题:**2018-03-05

**摘要:**了解如何使用 FILESTREAM 提供程序在 SharePoint Server 2016 和 SharePoint 2013 场中启用远程 BLOB 存储 (RBS)。

SharePoint Server 使用 RBS 功能将二进制大型对象 BLOB 存储在内容数据库外部。有关 RBS 的详细信息,请参阅 SharePoint Server 中的 RBS 概述

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

提示

此解决方案使用 SQL Server 2014、Service Pack 1 SP1、SP2、SQL Server 2016、SQL Server 2016 SP1 和 SQL Server 2008 随附的 FILESTREAM RBS 提供程序。若要使用其他提供程序安装和配置 RBS,请按照使用第三方提供程序为 SharePoint Server 安装和配置 RBS 中的过程操作。

本文内容:

  • 开始之前

  • 在数据库服务器上启用 FILESTREAM

  • 为每个内容数据库设置 BLOB 存储

  • 在每个前端服务器或应用程序服务器上安装 RBS 客户端库

  • 为每个内容数据库启用 RBS

  • 向 Web 应用程序分配 db_owner 权限

  • 测试 RBS 安装

开始之前

您只需要对服务器场使用 FILESTREAM 提供程序安装和配置一次 RBS。不过,如果您要使用其他提供程序为特定内容数据库启用 RBS,则必须配置 RBS 以使用这些提供程序。有关执行此操作的详细信息,请参阅使用第三方提供程序为 SharePoint Server 安装和配置 RBS

在开始此操作之前,请查看有关先决条件的以下信息:

  • 执行为每个内容数据库设置 BLOB 存储部分中的步骤的用户帐户必须是要为其配置 RBS 的每个数据库上 db_owner 固定数据库角色的成员。

  • 在在每台 Web 服务器上安装 RBS 客户端库部分的步骤中安装客户端库的用户帐户必须是安装该库的所有计算机上 管理员 组的成员。

  • 在为每个内容数据库启用 RBS 部分中,启用 RBS 的用户帐户必须具有足够的权限来运行 Microsoft PowerShell。

在数据库服务器上启用 FILESTREAM

默认情况下,FILESTREAM 功能已在您安装 SQL Server 时安装,但未启用它。您必须在运行 SQL Server(承载 SharePoint Server 数据库)的计算机上启用并配置 FILESTREAM。您必须执行以下操作:

  1. 针对 Transact-SQL 访问启用 FILESTREAM

  2. 启用用于文件 I/O 流访问文件流。

  3. 如果您需要远程客户端访问,请允许远程客户端针对 FILESTREAM 数据启用流访问。

要为文件 I/O 启用 FILESTREAM 并允许客户端访问,请按照启用和配置 FILESTREAM 中的说明操作。您仅需为您要使用 RBS 的每个数据库服务器配置这些设置一次。

为每个内容数据库设置 BLOB 存储

启用并配置 FILESTREAM 之后,请按照以下过程在文件系统中设置 BLOB 存储。必须为要对其使用 RBS 的每个内容数据库设置 BLOB 存储。

预配 BLOB 存储的具体步骤

  1. 确认执行这些步骤的用户帐户是要为其配置 RBS 的每个数据库上 db_owner 固定数据库角色的成员。

  2. 打开 SQL Server Management Studio

  3. 连接托管内容数据库的 SQL Server 实例。

  4. 展开“数据库”。

  5. 单击要为其创建 BLOB 存储的内容数据库,然后单击“新建查询”。

  6. 将以下 SQL 查询粘贴在“查询”窗格中,然后按列出顺序执行它们。在每一例中,将 [WSS_Content] 替换为内容数据库名称,将 c:\BlobStore 替换为要在其中创建 BLOB 存储的卷\目录。设置过程将在您指定的位置创建文件夹。请注意,您只能设置一次 BLOB 存储。如果您尝试多次设置同一 BLOB 存储,则将收到错误。

    提示

    为了获得最佳性能以及简化疑难解答,作为一种普通的最佳实践,我们建议您在不包含操作系统、页面文件、数据库数据、日志文件或 tempdb 文件的卷上创建 BLOB 存储。

    use [WSS_Content]
    if not exists 
    (select * from sys.symmetric_keys 
    where name = N'##MS_DatabaseMasterKey##')
    create master key encryption by password = N'Admin Key Password !2#4'
    
    use [WSS_Content]
    if not exists 
    (select groupname from sysfilegroups 
    where groupname=N'RBSFilestreamProvider')
    alter database [WSS_Content]
    add filegroup RBSFilestreamProvider contains filestream
    
    use [WSS_Content] 
    alter database [WSS_Content]
     add file (name = RBSFilestreamFile, filename = 
    'c:\Blobstore') 
    to filegroup RBSFilestreamProvider
    

在 SQL Server 和每个前端服务器或应用程序服务器上安装 RBS 客户端库

必须在 SharePoint 场中的 SQL Server 节点和所有前端服务器或应用程序服务器上安装 RBS 客户端库。每台 Web 服务器仅安装一次 RBS 客户端库,但每个关联的内容数据库都单独配置有 RBS。客户端库包括链接到用户应用程序的客户端动态链接库 (DLL),以及一组在 SQL Server 上安装的存储过程。

警告

请勿通过运行 RBS_amd64.msi 文件并启动“安装 SQL 远程 BLOB 存储”向导来安装 RBS 客户端库。此向导设置的某些默认值并不建议用于 SharePoint Server

在每个 SQL Server 上安装 RBS 客户端库的具体步骤。

  1. 确认执行这些步骤的用户帐户是安装该库的计算机上 管理员 组的成员。

  2. 在 SQL Server 节点上,根据使用的 SQL Server 版本和 SharePoint 级别下载正确的 RBS 客户端。

    SharePoint Server 2016 支持 SP1、SP2、SQL Server 2016 和 SQL Server 2016 SP1 随附的 FILESTREAM 提供程序。

    SharePoint 2013 支持所有 SQL Server 2008 R2、SQL Server 2012 版本随附的 FILESTREAM 提供程序。

    只需从功能包下载 RSB.msi 文件即可,还要确保下载的处理器类型(x86 或 x64)适合你的服务器。

    对于 SharePoint Server 2016,请从以下列表中选择正确安装:

    对于 SharePoint 2013,请从以下列表中选择正确安装:

  3. 将以下命令复制并粘贴到命令提示符窗口中。将 WSS_Content 替换为数据库名称,将 DBInstanceName 替换为 SQL Server 实例名称。您只应使用特定数据库名称和 SQL Server 实例名称运行一次此命令。此操作应大约在一分钟内完成。

    msiexec /qn /lvx* rbs_install_log.txt /i RBS_amd64.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content" DBINSTANCE="DBInstanceName" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider_1
    

在所有 SharePoint 前端服务器和应用程序服务器上安装 RBS 客户端库的具体步骤

  1. 确认执行这些步骤的用户帐户是安装该库的计算机上 管理员 组的成员。

  2. 在任何一台 Web 服务器上,根据使用的 SQL Server 版本和 SharePoint 级别下载正确的 RBS 客户端。使用以下列表之一选择正确安装。运行自解压缩下载包,为 X64 RBS.msi 文件创建安装文件夹。

    SharePoint Server 2016 支持 SP1、SP2、SQL Server 2016 和 SQL Server 2016 SP1 随附的 FILESTREAM 提供程序。

    SharePoint 2013 支持所有 SQL Server 2008 R2、SQL Server 2012 版本随附的 FILESTREAM 提供程序。

    只需从功能包下载 RSB.msi 文件即可,还要确保下载的处理器类型(x86 或 x64)适合你的服务器。

    对于 SharePoint Server 2016,请从以下列表中选择正确安装:

    对于 SharePoint 2013,请从以下列表中选择正确安装:

  3. 将以下命令复制并粘贴到命令提示符窗口中。将 WSS_Content 替换为数据库名称,将 DBInstanceName 替换为 SQL Server 实例名称。此操作应大约在一分钟内完成。

    msiexec /qn /lvx* rbs_install_log.txt /i RBS_amd64.msi DBNAME="WSS_Content" DBINSTANCE="DBInstanceName" ADDLOCAL=Client,Docs,Maintainer,ServerScript,FilestreamClient,FilestreamServer
    

    备注

    如果尝试在同一 SQL Server 实例上为其他数据库安装 SQL Server 2012 远程 BLOB 存储,将会看到错误消息。有关详细信息,请参阅 KB2767183

    在收到此错误信息后,将以下命令复制并粘贴到命令提示符窗口(不带 /qn 开关)。这将打开 RBS 安装程序窗口,您仅可以在这里更改数据库名称,然后按照默认选项进行操作。您会看到第二个数据库中创建了 RBS 表。

    msiexec  /lvx* rbs_install_log.txt /i RBS.msi TRUSTSERVERCERTIFICATE=true FILEGROUP=PRIMARY DBNAME="WSS_Content_RBS" DBINSTANCE="SQL2012SERVER" FILESTREAMFILEGROUP=RBSFilestreamProvider FILESTREAMSTORENAME=FilestreamProvider
    
  4. 为 SharePoint 场中的所有前端服务器和应用程序服务器重复执行此过程。

    备注

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

确认 RBS 客户端库安装

  1. rbs_install_log.txt 日志文件的创建位置与 RBS_amd64.msi 文件的所在位置相同。请使用文本编辑器打开 rbs_install_log.txt 日志文件并向文件底部滚动。在文件末尾的最后 20 行内,应该会有一项显示以下内容:“产品: SQL 远程 Blob 存储 – 已成功完成安装”。

  2. 在运行 Service Pack 1 (SP1) 或 SQL Server 2008 的计算机上,验证是否在内容数据库中创建了 RBS 表。一些表应列在名称前面有字母“mssqlrbs”的内容数据库下。

为每个内容数据库启用 RBS

您必须在 SharePoint 场中的一台 Web 服务器上启用 RBS。执行此活动时,选择哪一台 Web 服务器并不重要,只要使用上面的过程在该服务器上安装了 RBS 即可。您必须为每个内容数据库执行一次此过程。

备注

只能使用 Microsoft PowerShell 启用 RBS。

使用 Microsoft PowerShell 启用 RBS 的具体步骤

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

  2. 启动 SharePoint 命令行管理程序。

  3. 在 Microsoft PowerShell 命令提示符处,键入以下命令:

    $cdb = Get-SPContentDatabase <ContentDatabaseName>
    $rbss = $cdb.RemoteBlobStorageSettings
    $rbss.Installed()
    $rbss.Enable()
    $rbss.SetActiveProviderName($rbss.GetProviderNames()[0])
    $rbss
    

    其中:<ContentDatabaseName> 是内容数据库的名称。

有关详细信息,请参阅 Get-SPContentDatabase

向 Web 应用程序分配 db_owner 权限

重要

确保访问启用 RBS 的内容数据库的 Web 应用程序是该数据库的 db_owner 固定数据库角色的成员。

测试 RBS 安装

应测试 SharePoint 场中一台前端服务器上的 RBS 安装,以确保系统能够正常运行。

测试 RBS 数据存储的具体步骤

  1. 在包含 RBS 数据存储的计算机上,单击“开始”,然后单击“计算机”。

  2. 浏览到 RBS 数据存储目录。

  3. 确认该文件夹为空。

  4. 在 SharePoint 场中,将至少为 100 KB 的文件上载到文档库。

  5. 在包含 RBS 数据存储的计算机上,单击“开始”,然后单击“计算机”。

  6. 浏览到 RBS 数据存储目录。

  7. 浏览到文件列表,并打开修改日期最近的文件。此文件应该是您上载的文件。

另请参阅

SharePoint Server 中的 RBS 概述

决定在 SharePoint Server 中使用 RBS

Install and configure RBS with SharePoint 2013 and SQL Server 2012(使用 SharePoint 2013 和 SQL Server 2012 安装和配置 RBS)

安装 SharePoint 2013

远程 Blob 存储 (RBS) (SQL Server)

启用和配置 FILESTREAM