【问题标题】:Sharepoint Crawl Not Running but Crawl Database Log File (& TempDB log file) Growing RapidlySharepoint Crawl 未运行但爬取数据库日志文件(和 TempDB 日志文件)快速增长
【发布时间】:2016-01-06 19:16:48
【问题描述】:

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

从 SharePoint Central Admin 中,我们可以看到没有正在运行爬网(状态为“空闲”并且填充了“上次爬网完成”字段)。

使用 SQL Management Studio,我们可以看到我们有一个长时间运行的事务正在调用此链接中描述的“proc_MSS_CrawlReportPreprocessChanges”存储过程(在“SharePoint 2010/2013 和 TempDB 容量规划...”部分):-

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

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

如果抓取正在运行但抓取已完成,这将解释我们的问题。

所以我的主要问题是,是什么导致“proc_MSS_CrawlReportPreprocessChanges”程序运行,我们如何才能停止它?

请帮忙!

更新(2015 年 12 月 29 日)

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

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

  • 搜索应用搜索服务应用的爬取日志报告
  • 搜索应用程序搜索服务应用程序的爬网日志清理

这两个服务都使用“MSSCrawlUrlChanges”表,该表目前有超过 6500 万条记录。

上面的“清理”服务调用存储过程“proc_MSS_CrawlReportCleanup”,传入一个参数,表示应该删除数据的天数(我找不到在 Sharepoint 中配置参数值的位置) - 不知道如何但显然,此服务/程序没有按预期清理表格。

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

  • exec proc_MSS_CrawlReportCleanup 300

显然,这只是一个临时解决方案,但它阻止了我们每隔一小时左右就耗尽磁盘空间并保持系统运行。我现在需要尝试确定为什么会发生这种情况以及为什么“清理”服务似乎没有工作,并使用 David 的建议让爬网回到正轨。

更新(2016 年 1 月 6 日)

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

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

获取-SPServiceApplication |其中 {$_.TypeName -eq "搜索服务应用程序"}

那么:-

//使用ID获取搜索应用

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

//输出清理间隔

$searchApp.CrawlLogCleanUpIntervalInDays

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

$searchApp.CrawlLogCleanUpIntervalInDays = 30

$searchApp.Update()

现在可以从 SharePoint Central Admin 运行“搜索应用程序搜索服务应用程序的抓取日志清理”任务,该任务将获取新的间隔(如果“MSSCrawlUrlChanges”表中有大量记录,则可能需要从大于30 天并以可管理的块重复,例如 300、250、200 等)。

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

【问题讨论】:

    标签: sharepoint-2010


    【解决方案1】:

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

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

    如果问题再次出现,请重复上述步骤,但这次是在开始完全抓取之前,删除并重新创建您的内容源,然后再开始另一次完全抓取。

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

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

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

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

    希望对你有帮助。

    【讨论】:

    • 非常感谢 David 的建议,我必须慢慢掌握 SharePoint 的相关领域。我希望重新启动搜索服务会很容易,但我收到一条消息,指出“必须在搜索服务应用程序的上下文中完成从服务器中删除搜索服务......”。单击“确定”将我带到管理服务应用程序以选择要配置的搜索服务。我仍在努力理解这意味着什么!
    • 认为您现在可能需要使用 PowerShell。请尝试以下操作: $searchSvc = Get-SPServiceApplication "您的搜索服务的名称" $searchID = $searchSvc.ID Remove-SPServiceApplication -ID $searchID 如果这不起作用,您可能必须尝试旧的忠实 stsadm 命令 stsadm - o deleteconfigurationobject -id 一旦它们被删除,尝试使用旧数据库读取。如果问题仍然存在,请重复并删除旧数据库,因为我认为您的整个搜索环境已完成。现在让我告诉你这对你有什么作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    相关资源
    最近更新 更多