日常运维中您可能需要清除SharePoint 2010/2013/2016中的过期配置缓存。例如,有时计时器作业往往会卡住,并在这种情况下清除缓存。您可以手动清除SharePoint配置缓存或者使用PowerShell脚本。示例中,使用SharePoint Server 2016 版本,但同样的方法适用于以前版本的SharePoint。
Clearing the Configuration Cache Manually
1、停止SharePoint Timer Service.
2、在文件资源管理器中转到%SystemDrive% ProgramData Microsoft SharePoint Config文件夹。程序数据文件夹默认为隐藏,因此您可能必须在文件资源管理器中取消隐藏它。
3、Config文件夹中有几个GUID文件夹。我们需要找名称中带有连字符的那个。
4、在这个文件夹里面你会发现很多文件。您的目标是删除除cache.ini之外的所有文件。首先对cache.ini文件的进行备份。您可以将其复制并粘贴到同一个文件夹中。缓存 - Copy.ini将成为您的备份文件。
5、现在您如已经完成cache.ini文件的备份,下一步需要删除所有的.xml文件。在数千个文件中查找cache.ini文件的最简单方法是通过单击列标题对Type列进行排序。
6、单击Ctrl-A突出显示文件夹中的所有文件,然后按Ctrl键单击cache.ini,以取消选择该文件。
7、删除所有文件。这会让你只在这个文件夹中有cache.ini文件。不要删除该文件夹。您的目标是在由系统创建的相同文件夹中重建缓存。
8、打开cache.ini文件。您可能期望文件中有大量信息,但它只有5位或6位数字,例如356867.用1替换这个数字,这样文件中的唯一数据就是数字1.现在保存文件。将此数字更改为1将重置高速缓存,并且将在重新启动SharePoint定时服务后重建该高速缓存
9、在服务控制台中启动SharePoint计时器服务。
10、您会注意到缓存文件开始填充该文件夹。在我的情况下,它只需要几秒钟,但取决于您的环境和配置
11、验证cache.ini文件中的值不再是1.它可能是与以前不同的5-6位数字。
12、将这个新的cache.ini文件复制到cache.OLD.ini文件中,并将原始备份(cache - Copy.ini)重命名为cache.NEW.ini ,现在已完成SharePoint 配置缓存清理
Using PowerShell to Clear the Configuration Cache
操作步骤与手动方法类似 :
1.将SharePoint加载项加载到PowerShell中。
2. 停止SharePoint计时器服务。
3.删除缓存(xml)文件。
4. 通过将cache.ini文件中的值设置为1来重置高速缓存
5. 启动SharePoint计时器服务。
################## Stop-Service SPTimerV4 $folders = Get-ChildItem C:ProgramDataMicrosoftSharePointConfig foreach ($folder in $folders) { $items = Get-ChildItem $folder.FullName -Recurse foreach ($item in $items) { if ($item.Name.ToLower() -eq “cache.ini”) { $cachefolder = $folder.FullName } } } $cacheIn = Get-ChildItem $cachefolder -Recurse foreach ($cachefolderitem in $cacheIn) { if ($cachefolderitem -like “*.xml”) { $cachefolderitem.Delete() } } $a = Get-Content $cachefoldercache.ini $a = 1 Set-Content $a -Path $cachefoldercache.ini read-host “press ENTER” start-Service SPTimerV4