小议:如何判断SharePoint Config DB 哪个表所占用的Size以及解决方案

博客地址:http://blog.csdn.net/shelleyliu0415

 

问题描述:近期SharePoint论坛中有帖子说:SharePoint2013运营一段时间后,SharePoint Config DB所占用的存储空间特别大,mdf文件所占用的空间为100GB,想寻求一个解决方案。

 

当我看到这个帖子的时候,第一个反应就是很诧异,Config DB又不是ContentDB,怎会占用那么多存储空间呢?在好奇心的驱使下也想看看具体reason,究竟是ConfigDB中的哪个表占用了这么多空间,于是Bing下查找了下如何查看DB表磁盘使用空间的SQL语句,在我的测试环境下运行了一下,果然看到了效果,两个测试VM,均显示同样的结果,Timerjob history这个表惹的祸。

 

结果可见:

 


 

论坛的好心人又share了另一个查询方式,SQLServer只要是08 以上版本,可以直接在SQL里查询,简单直观,操作如下:

 

Management Studio中选中对应的数据库,鼠标右键->Reports->Standard Reports->Disk Usage By Table直接生产直观的report来看具体表占用的情况,结果如下图所示,也可以锁定是Timer Job History这个表所使用空间比较大。

 


 

那么我们找到了原因,如何来解决呢?霖雨提供的解决方案甚好,直接在SharePoint管理中心的Monitoring->ReviewJob Definition里找到Delete Timer Job History,直接运行即可,主要是从Timer Job History删除旧的entries,如下图所示:

 


 

除此之外,还可以通过PowerShell去删除,具体命令如下:

 

Get-SPTimerJob | where { $_.name -like *<your search criteria>* } |ft id,name

$job =Get-SPTimerJob -id <GUID>

$job.Delete()

 

比如计划删除Profile相关的Timer Job,那么如下所示:

 

Get-SPTimerJob  | Sort-Objectname | where { $_.name -like *Profile* } |ft id,name

 


 

想删除哪个Timer Job,就记录好哪个GUID$job =Get-SPTimerJob -id b92850fa-abb6-4d3e-a07b-27bd25e7f863

 


 

$job.Delete()

 


 

今天有时间整理出来,分享给大家,供日后有相同问题的伙伴们参考!谢谢阅读!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章