在SharePoint Online中使用Designer报错,错误为:This Feature has been disabled by your administrator.找了好久发现原因,分享给大家。 1、在SharePoint Online的列表中,点击编辑列表,如下图: 2、弹出确认对话......
2021-06-25 122 使用Designer报错
在已经运行了2年多的SharePoint服务器上,发现SharePoint_Config的数据库文件越来越大,已经达到90几个GB,收缩可以减小20几个GB,但是一周以后又会恢复到90几个GB大小,甚是奇怪。
因为磁盘空间不足,一共只有200GB大小,还有大大小小网站若干,用来存放照片、视频、文档等,所以决定好好研究一下这个问题。
经过不懈的谷歌,发现了问题症结所在,现在分享给大家,希望对遇到类似的问题的人,有个参考。
对了,注意。。这里是指数据库文件,不是数据库的日志文件,如果是日志文件的话,在数据库管理工具中,修改备份模式为简单,直接收缩就好了!
1、在数据库服务器中打开Microsoft SQL Server Management Studio,找到SharePoint_Config数据库,然后执行下面的语句:
EXEC sp_MSforeachtable @command1="EXEC 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.PowerShell
Write-Host "Clearing Down Timer Job History"
$daysToKeep = 300
$daysToPurgeInOneLoop = 5
while ($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 = $false
while ($jobFinished -eq $false)
{
Start-Sleep -Seconds 2
$runningJob = Get-SPTimerJob $history.Name
Write-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:00"
Write-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,效果还是很明显的,整理出来很大一部分空间,不用经常做磁盘空间维护了。
标签: 如何 收缩 超 大的 SharePoint Config 数据库 在
相关文章
在SharePoint Online中使用Designer报错,错误为:This Feature has been disabled by your administrator.找了好久发现原因,分享给大家。 1、在SharePoint Online的列表中,点击编辑列表,如下图: 2、弹出确认对话......
2021-06-25 122 使用Designer报错
在很久很久以前,碰到过一次这样的需求,给客户做好的站点经过层层测试,需求变更在测试,历经半年时间终于要上线了。 然而,有个问题是,回收站里的东西太多太多了,作为开发人员,......
2021-06-25 816 PowerShell清空网站集回收站
最近给客户做项目,客户有这样一个需求,就是不同SharePoint Group里面的人,进到页面里,看到的东西不一样。 最开始想到的解决方案是,通过前端代码来解决,但是这样会有两个问题,首先代......
2021-06-25 775 SharePoint目标访问群体
很多客户都不允许服务器场管理员账号是永不过期的,这样一方面不安全,另外,也不符合很多公司的安全策略。 所以,我们就会遇到定期修改密码的操作,说真的,这个操作有点sao,因为我......
2021-06-25 627 SharePoint更新服务器场管理员密码
最近碰到这样的一个问题,就是SharePoint 站点备份(Backup-SPSite)的时候,速度特别慢,然后网站变成只读状态(备份过程中只读属于正常现象)。但是,自己手欠把备份命令的PowerShell窗口关掉......
2021-06-25 284 sharepoint网站集解锁