SharePoint2013中重建分布式缓存步骤

LandryBean 2019-10-30

缓存配置文件路径:

C:\Program Files\用于 Windows Server 的 AppFabric 1.1\DistributedCacheService.exe.config

配置信息在注册表中的查看路径:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppFabric\V1.0\Configuration

重建分布式缓存步骤:

首选,进入Powershell,运行Use-CacheCluster 进入powershell缓存集群上下文。

1. 停用分布式缓存服务

方法一:进入CA-->应用程序管理-->管理服务器上的服务-->找到分布式缓存,然后点击停止;

方法二:

ps>Get-SPServiceInstance | ? {($_.service.tostring()) -eq "SPDistributedCacheService Name=AppFabricCachingService"} | % { $_.Server; $_.Status; $_.Id }

获取服务示例ID

ps>$s= Get-SPServiceInstance GUID

ps>$s.Unprovision()

ps>$s.Delete() 

方法三:

Stop-SPDistributedCacheServiceInstance -Graceful

Remove-SPDistributedCacheServiceInstance

2. Unregister-CacheHost

3. 注册cachehost,其中使用的Provider,ConnectionString 从DistributedCacheService.exe.config中读取,Account使用Farm Account,也可使用"NT AUTHORITY\NETWORK SERVICE",HostName 为服务器机器名。(对于场中的每一个服务器都进行此项调用)

ps>Register-CacheHost –Provider "SPDistributedCacheClusterProvider" –ConnectionString "" -Account "" -CachePort 22233 -ClusterPort 22234 -ArbitrationPort 22235 -ReplicationPort 22236 –HostName "" 

4. 检查cachehost状态,正常情况下,状态为UP

ps>Get-CacheHost

5. 如果状态为DOWN,导出配置文件,检查配置文件中hostid,以及Account信息是否正常。hostid必须与DistributedCacheService.exe.config中的hostid一致,如果不一致,则修改配置文件中的hostid,然后重新导入。

ps> Export-CacheClusterConfig -Path D:\soft\AF.XML

  检查修改导出的xml文件,然后重新导入。

ps> Import-CacheClusterConfig D:\soft\AF.XML

ps> Remove-SPDistributedCacheServiceInstance

ps> Add-SPDistributedCacheServiceInstance

ps> Start-CacheHost -ComputerName "" -CachePort 22233 

 6. 然后重新运行Get-CacheHost,检查服务运行状态

运行缓存集群命令常见问题,及解决方案:

1. Use-CacheCluster : ErrorCode<ERRPS001>:SubStatus<ES0001>:读取提供程序和连接字符串值时发生错误。请手动提供这些值。

如果是缓存集群中的主服务器,则检查DistributedCacheService.exe.config中connectionstring是否正常。

如果是其他加入farm的服务器,则在运行命令行的时候,补充ConnectionString和ProviderType的值,如:Use-CacheCluster -ConnectionString "" -ProviderType "SPDistributedCacheClusterProvider"

下面是修改配置信息的PS命令行:

registryHive = "HKLM:SOFTWARE\Microsoft\AppFabric\V1.0\Configuration"

$connectionStringValueName = "ConnectionString"

$connectionStringValue= ""

$providerValueName = "Provider"

$providerValue= "SPDistributedCacheClusterProvider"

if ((Test-Path $registryHive) -eq $false) {New-Item $registryHive -Force | Out-Null}

Set-ItemProperty $registryHive -Name $connectionStringValueName -Value  $connectionStringValue| Out-Null

Set-ItemProperty $registryHive -Name $providerValueName -Value $providerValue| Out-Null

2.

ps> $s= Get-SPServiceInstance GUID

ps> $s.Delete()

使用“0”个参数调用“Delete”时发生异常:“无法删除 SharePoint 管理框架中的对象“SPDistributedCacheServiceInstance”,因为其他对象依赖于该对象。请更新所有这些依赖对象,使其指向空对象或其他对象,然后重试此操作。这些依赖对象包括: 

SPServiceInstanceJobDefinition Name=job-service-instance-XXXX

所在位置 行:1 字符: 1

+ $s.Delete()

+ ~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException

    + FullyQualifiedErrorId : InvalidOperationException

解决方法:

先删除对应的定时任务

ps> $jobToDelete = Get-SPTimerJob | ? { $_.name -eq "job-service-instance-4XXX" }

ps> $jobToDelete.Delete()

3. 

ps> Unregister-CacheHost -HostName computername -ProviderType 

Unregister-AFCacheHost : 缺少参数“ProviderType”的某个参数。请指定一个类型为“System.String”的参数,然后再试一次。

所在位置 行:1 字符: 58

+ Unregister-CacheHost -HostName computername -ProviderType

+                                                          ~~~~~~~~~~~~~

    + CategoryInfo          : InvalidArgument: (:) [Unregister-AFCacheHost],ParameterBindingException

    + FullyQualifiedErrorId : MissingArgument,Microsoft.ApplicationServer.Caching.Configuration.Commands.UnregisterAFCacheHostCommand

解决方法

导出cachecluster配置文件,将hosts节点下所有信息删除。hosts配置节点需要为空才能执行unregister操作。

<hosts></hosts>

PS C:\Windows\system32> Export-CacheClusterConfig -Path D:\soft\AF.XML

PS C:\Windows\system32> Import-CacheClusterConfig D:\soft\AF1.XML

4.

ps> Start-CacheHost -ComputerName "" -CachePort 22233

HostName : CachePort            Service Name            Service Status Version Info

--------------------            ------------            -------------- ------------

computername:22233 AppFabricCachingService DOWN           3 [3,3][1,3]

Start-CacheHost : 无法启动计算机“”上的服务 AppFabricCachingService。

所在位置 行:1 字符: 1

+ Start-CacheHost -ComputerName "" -CachePort 22233

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : NotSpecified: (:) [Start-AFCacheHost], InvalidOperationException

    + FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.ApplicationServer.Caching.Commands.StartAFCacheHostCommand

解决方法

导出cachecluster配置文件,与DistributedCacheService.exe.config进行对比,检查其中的hostid,account等信息与DistributedCacheService.exe.config完全一致。然后重新创建SPDistributedCacheServiceInstance

Export-CacheClusterConfig -Path D:\soft\AF.XML

Import-CacheClusterConfig D:\soft\AF.XML

ps> Remove-SPDistributedCacheServiceInstance

ps>  Add-SPDistributedCacheServiceInstance

SharePoint2013中重建分布式缓存步骤

相关推荐