建设的比较好的档案馆网站,wordpress 主题logo,网站开发 技术指标,中国万网怎么自己做网站前言 在已经运行了2年多的SharePoint服务器上#xff0c;发现SharePoint_Config的数据库文件越来越大#xff0c;已经达到90几个GB#xff0c;收缩可以减小20几个GB#xff0c;但是一周以后又会恢复到90几个GB大小#xff0c;甚是奇怪。 因为磁盘空间不足#xff0c;一共…前言 在已经运行了2年多的SharePoint服务器上发现SharePoint_Config的数据库文件越来越大已经达到90几个GB收缩可以减小20几个GB但是一周以后又会恢复到90几个GB大小甚是奇怪。 因为磁盘空间不足一共只有200GB大小还有大大小小网站若干用来存放照片、视频、文档等所以决定好好研究一下这个问题。 经过不懈的谷歌发现了问题症结所在现在分享给大家希望对遇到类似的问题的人有个参考。 对了注意。。这里是指数据库文件不是数据库的日志文件如果是日志文件的话在数据库管理工具中修改备份模式为简单直接收缩就好了 1、在数据库服务器中打开Microsoft SQL Server Management Studio找到SharePoint_Config数据库然后执行下面的语句
EXEC sp_MSforeachtable command1EXEC sp_spaceused ? 2、看到执行的结果就是每个数据库表的大小然后看到TimerJobHistory这个表的行数非常多大小也非常的大。 3、谷歌有类似的解决方案说是因为job-delete-job-history这个Job运行失败造成了Job运行的历史记录不能被及时清理造成了配置数据库越来越大。所以运行下面的脚本会清理一年以来的积累而这个Job默认每周运行一次清理上周积累下来的历史记录。
$history get-sptimerjob | where-object {$_.name -eq “job-delete-job-history”}
$history.daystokeephistory 365
$history.update()
$history.runnow() 4、运行完毕以后还要将daystokeephistory数值改回7天如下图 5、可以看到运行以后确实有个Job再运行不过我这里可能由于已经超过365天了所以也没有起作用Job依旧运行Failed。所以只能继续谷歌寻找解决方案。 6、经过不懈的查找发现了一个ps脚本把下面脚本存成一个ps1文件执行一下会起作用至少我这里已经起作用了会删掉多余的历史记录 Add-PSSnapin Microsoft.SharePoint.PowerShellWrite-Host Clearing Down Timer Job History$daysToKeep 300$daysToPurgeInOneLoop 5while ($daysToKeep -gt 0){$history get-sptimerjob | where-object {$_.name -eq “job-delete-job-history”}Write-Host Write-Host -NoNewLine Setting Days to Keep:Write-Host -ForegroundColor Green $daysToKeep$history.DaysToKeepHistory $daysToKeep$history.update()Write-Host -ForegroundColor Green Starting Purge Job$lastTimeJobRan $history.LastRunTime$history.runnow()Write-Host -NoNewLine -ForegroundColor Green Waiting For Purge Job to Complete$jobFinished $falsewhile ($jobFinished -eq $false){Start-Sleep -Seconds 2$runningJob Get-SPTimerJob $history.NameWrite-Host -NoNewLine -ForegroundColor Yellow .if ($lastTimeJobRan -ne $runningJob.LastRunTime){$jobFinished $true}}Write-Host Write-Host -ForegroundColor Green Ending Purge Job$daysToKeep $daysToKeep - $daysToPurgeInOneLoop}Write-Host -ForegroundColor Green Setting Final Job History Retention to 3 days, and schedule to run daily 5am$history.DaysToKeepHistory 3$history.update()$history.runnow()Set-SPTimerJob -Identity $history -Schedule Daily at 05:00Write-Host -ForegroundColor Yellow Please check row counts on dbo.TimerJobHistory Table in Config DB to ensure run complete 结束语 当然执行PowerShell的命令需要很长时间我这里用了大概1天时间将90多个GB的SharePoint_Config收缩到了15个GB效果还是很明显的整理出来很大一部分空间不用经常做磁盘空间维护了。
附后 PowerShell命令的参考地址http://sharepoint.it-professional.co.uk/?p228