Sharepoint 抓取不是 运行 但抓取数据库日志文件(和 TempDB 日志文件)增长迅速

Sharepoint Crawl Not Running but Crawl Database Log File (& TempDB log file) Growing Rapidly

我们的 Sharepoint 2010 Crawl 数据库突然开始使用任何可用的 space 作为其日志文件 (.ldf),我们添加的任何其他 space 都会在一个小时左右的时间内使用(例如 10Gb昨天几分钟内就消失了)。

从 SharePoint Central Admin 中我们可以看到 运行ning 没有抓取(状态为 'idle' 并且填充了 'Last crawl completed' 字段)。

使用 SQL Management Studio 我们可以看到我们有一个很长的 运行ning 事务正在调用 'proc_MSS_CrawlReportPreprocessChanges' 存储过程,这在 link 中描述(在 'SharePoint 2010/2013 and capacity planning for TempDB ...' 部分):-

http://sharepoint.it-professional.co.uk/

-所以 'proc_MSS_CrawlReportPreprocessChanges' 使用游标,因此有很多 TempDB 操作。

如果抓取是 运行 但抓取已完成,这可以解释我们的问题。

所以我的主要问题是,是什么导致 'proc_MSS_CrawlReportPreprocessChanges' 程序成为 运行,我们如何才能阻止它?

请帮忙!

更新(2015 年 12 月 29 日)

问题似乎与爬网报告有关,而不是 运行 爬网本身。

似乎有两个相关的 SharePoint 服务:-

这两项服务都在使用 'MSSCrawlUrlChanges' table,目前有超过 6500 万条记录。

上面的 'cleanup' 服务调用存储过程 'proc_MSS_CrawlReportCleanup' 传入一个参数,表示应删除数据的天数(我找不到在 Sharepoint 中配置参数值的位置) - 不确定如何但很明显此服务/程序没有按预期清理 table。

所以为了清除这个table我已经停止了这两个服务并手动运行程序,每次都减少参数值以每次清除几百万条记录:-

显然这只是一个临时解决方案,但它已阻止我们每隔一小时左右 运行ning 出磁盘 space 并保持系统 运行ning。我现在需要尝试确定发生这种情况的原因以及 'cleanup' 服务似乎无法正常工作的原因,再加上使用 David 的建议让爬行回到正轨。

更新(2016 年 1 月 6 日)

使用 Powershell 设置清除间隔而不是通过 SQL 调用存储过程来清除爬网日志的更好方法:-

//使用它来获取搜索服务应用程序的 ID

获取 SPServiceApplication |其中 {$_.TypeName -eq "Search Service Application"}

然后:-

//使用ID获取搜索应用

$searchApp = 获取 SPServiceApplication |其中 {$_.Id -eq "a21c3f70-9487-471e-a7ad-b80259c90ff7"}

//输出清理间隔

$searchApp.CrawlLogCleanUpIntervalInDays

//将间隔设置为 30(原为 90)

$searchApp.CrawlLogCleanUpIntervalInDays = 30

$searchApp.Update()

现在可以 运行 来自 SharePoint Central Admin 的 'Crawl Log Cleanup for Search Application Search Service Application' 任务,它将获取新的时间间隔(如果 'MSSCrawlUrlChanges' table 中有大量记录,则可能需要从大于 30 天的天数开始,并以可管理的块重复,例如 300、250、200 等)。

我现在希望更小的清理间隔能让我再次安排服务,但我会监控一段时间以确保问题不会再次发生。

我以前从未见过这样的事情,但我建议您完全停止 SharePoint 中的搜索服务。一旦关机,如果还是运行,则强制取消SQL中的存储过程。

重新启动服务并开始完全爬网。

如果问题再次出现,请重复上述操作,但这次在开始完全爬网之前,删除并重新创建您的内容源,然后再开始另一个完全爬网。

如果仍然发生,我的建议可能过于激烈,但您可能需要考虑重新设置索引。如果您不知道,这就是事情,如果您重置索引,您将丢失所有分析。搜索从您的用户搜索习惯中学到的所有东西都将丢失。您通过搜索(热门文档、热门搜索词等)所做的任何报告都将丢失。它将不得不重建。取决于您进行搜索的时间长短以及您的用户使用它的次数,或者您是否有基于它构建的报告,可能会影响影响,所以决定权在您。

我要采取的最后一步是删除您的整个搜索服务并重新创建它(包括新数据库)。

如果您有 Microsoft Premier 支持,也给他们打电话。

我的建议可能看起来很激进,但如果这种情况持续下去,搜索可能很快就会使您的系统完全无法使用。如果这种情况发生在我的农场并且我找不到原因或者其他人没有我没有想到的解决方案,那么我将自己执行这些步骤。

希望对您有所帮助。