在 SharePoint Server 中维护 RBS
适用于:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
可通过使用 RBS Maintainer(它是 SQL Server 中的一项工具)在 SharePoint Server 中执行与 RBS 关联的大多数维护任务。 RBS Maintainer 为 SharePoint Server RBS 部署执行定期垃圾回收和其他维护任务。 您可以使用 Windows 任务计划程序或 SQL Server 代理为使用 RBS 的每个数据库计划这些任务。 您必须使用命令行参数或通过 XML 文件来设置 RBS Maintainer。 对于镜像或复制型数据库,可以针对任何单个实例运行 RBS Maintainer。
配置 RBS 垃圾回收
SharePoint Server 会自动为未引用的或已删除的 BLOB 数据添加删除标记。 SharePoint Server 通过查看 SharePoint Server 在删除时存储到内容数据库中的 BLOB ID 的列表来对 BLOB 的引用计数。 在 RBS 存储表中存在但在内容数据库中不存在的任何 BLOB 引用会被视为由 SharePoint Server 删除并将被标记为删除。 在内容数据库中不存在并且是在孤立项清理 时间段之前创建的 BLOB(下文中将进行说明)也会被视为由 SharePoint Server 删除并被标记为删除。
由于 SharePoint Server 会用表格形式列出内容数据库的 RBS 列中的 BLOB 引用,因此每个 RBS 列都必须有有效的索引,才能在 RBS 中注册。
SQL Server RBS Maintainer 工具将删除由 SharePoint Server 进行了删除标记的项。 您应将清理任务安排在非高峰时段运行,以降低对常规数据库操作的影响。
RBS 垃圾回收分为以下三个步骤执行:
引用扫描。 第一步是将 SharePoint Server 内容数据库中的 RBS 表与 RBS 自己的内部表的内容进行比较,并确定哪些 BLOB 不再被引用。 任何已取消引用的 BLOB 都将标记为待删除。
删除传播。 下一步是确定哪些 BLOB 被标记为待删除的时间段长于垃圾回收时间段的值,并将其从 BLOB 存储中删除。
孤立项清理。 最后一步确定是否有任何 BLOB 存在于 BLOB 存储中却不存在于 RBS 表中。 如果存在这种情况,将会删除孤立的 BLOB。
配置 RBS 垃圾回收
可通过指定以下 RBS Maintainer 设置和数据库设置来配置垃圾回收工作:
Maintainer 计划。 该设置确定运行 RBS Maintainer 的频率。
任务持续时间。 该设置确定单个 RBS Maintainer 任务可以运行的最长时间。 默认设置为两个小时。
应配置 RBS Maintainer,尽可能降低其活动对常规活动产生的影响。 若要了解数据库垃圾回收设置(例如,如何配置设置),请参阅 Running RBS Maintainer(运行 RBS Maintainer)。
RBS 和 BLOB 存储一致性检查
RBS Maintainer 会检查 RBS BLOB 引用的完整性并纠正发现的任何错误。 它会对数据库执行多项一致性检查,例如验证 RBS 列是否存在索引,以及验证 SharePoint Server 引用的所有 BLOB 在 RBS 中是否存在。
辅助表一致性检查会验证 RBS 辅助表是否处于一致状态。 执行的检查包括如下内容:
验证每个 RBS 表列是否有有效的索引。
验证 RBS 表列是否存在、已启用、具有有效索引并且具有正确的列类型。
尽管您可禁用以下一致性检查,但建议您不要这样做,因为这些检查可帮助确保 RBS 存储的一致性。 默认情况下,将启用以下一致性检查:
验证 SharePoint Server 所引用的所有 BLOB 在 RBS 表中是否存在。
验证是否有任何 BLOB 同时标记为正在使用和已删除。
将会记录发现的任何问题,RBS Maintainer 会通过创建缺少的索引条目、撤消注册缺少的列或者将正在使用的 BLOB 标记为未删除来尝试修复这些问题。
运行 RBS Maintainer
RBS 需要在运行 RBS Maintainer 之前,为使用 RBS 的每个数据库定义一个连接字符串。 此字符串存储在 RBS 安装路径>\Microsoft SQL 远程 Blob 存储 10.50\维护者文件夹中的配置文件<中,该文件夹通常在安装过程中创建。 可以通过结合运行 RBS Maintainer 中列出的命令行参数执行 Microsoft.Data.SqlRemoteBlobs.Maintainer.exe 程序来手动运行 RBS Maintainer。
您必须为使用 RBS 的每个数据库计划单独的 RBS Maintainer 任务。 以下步骤介绍了如何计划 RBS Maintainer 任务。
计划 RBS Maintainer 任务的具体步骤
确认您具有对 RBS 安装文件夹的“写入”权限。
将连接字符串添加到要执行的 RBS 维护者任务的 _<RBS 安装目录>_Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config 文件。 RBS 安装程序将使用安装期间提供的连接信息创建一个名为 RBSMaintainerConnection 的连接字符串。 但是,必须为每个额外的数据库添加新的连接字符串。
如果您使用的是 Windows 身份验证,则无需对连接字符串加密。 可通过运行以下命令来添加未加密的连接字符串:
aspnet_regiis -pef connectionStrings 。 -prov DataProtectionConfigurationProvider
rename web.config Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config
如果您使用的是 SQL 身份验证,则必须以加密形式存储 RBS Maintainer 连接字符串。 因此,若要添加连接字符串,要么必须加密新字符串,要么必须解密所有连接字符串。 加密的新字符串必须一次添加。 但是,可以使用 %windir%\Microsoft.net\Framework\ <版本>\Aspnet_regiis.exe 工具(作为 .NET Framework Microsoft的一部分分发)同时解密所有连接字符串。
运行以下命令可解密连接字符串,并将结果存储在 Web.config 文件中:
rename Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config web.config
aspnet_regiis -pdf connectionStrings
然后可以解密形式添加字符串,并使用以下命令将文件加密并重命名为 Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config:
aspnet_regiis -pef connectionStrings 。 -prov DataProtectionConfigurationProvider
rename web.config Microsoft.Data.SqlRemoteBlobs.Maintainer.exe.config
创建一个 Windows 计划程序任务,以针对每个适用的数据库运行 RBS Maintainer 任务。 如果您已在 GUI 模式下运行 RBS 安装程序,则它已自动创建 Windows 计划程序任务。 但是,如果您已在命令行模式下运行 RBS 安装程序,则每次计划运行 RBS Maintainer 的任务时都必须执行以下步骤:
在“开始”菜单上,单击“管理工具”,然后单击“任务计划程序”。
在“操作”菜单上,单击“创建任务”。
在“操作”选项卡上,单击“新建”。
在“ 新建操作 ”对话框的“ 操作 ”下拉列表中,选择“ 启动程序”。
在 “设置”下的“ 程序/脚本 ”框中,浏览到“维护器二进制文件 <RBS 安装目录>\Maintainer\Microsoft.Data.SqlRemoteBlobs.Maintainer.exe”,然后在 “添加参数 (可选) ”文本框中,添加任何可选参数。 The following default values are created by the installer:
<-ConnectionStringName RBSMaintainerConnection>、<-Operation GarbageCollection ConsistencyCheck ConsistencyCheckForStores>、<-GarbageCollectionPhases rdo>、<-ConsistencyCheckMode r>、<-TimeLimit 120>
Click OK.
在“触发器”选项卡上,单击“新建”。
在“ 新建触发器 ”对话框中,计划任务,然后单击“ 确定”。 We recommend that you schedule the task to run during low system activity times.
On the General tab, under Security, make sure that the user account has the appropriate permissions to run the task. You can change permissions by clicking Change User or Group.
在“常规”选项卡上,单击“不管用户是否登录都要运行”,然后单击“确定”。
另请参阅
概念
在 SharePoint Server 场中安装和配置附带 FILESTREAM 的 RBS
在 SharePoint Server 中设置内容数据库以使用附带 FILESTREAM 的 RBS