SharePoint2013中重建分布式缓存步骤

缓存配置文件路径:

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

原文地址:https://www.cnblogs.com/snailJuan/p/11763281.html

时间: 2024-08-30 05:22:29

SharePoint2013中重建分布式缓存步骤的相关文章

.NET Core应用中使用分布式缓存及内存缓存

.NET Core针对缓存提供了很好的支持 ,我们不仅可以选择将数据缓存在应用进程自身的内存中,还可以采用分布式的形式将缓存数据存储在一个“中心数据库”中.对于分布式缓存,.NET Core提供了针对Redis和SQL Server的原生支持.除了这个独立的缓存系统之外,ASP.NET Core还借助一个中间件实现了“响应缓存”,它会按照HTTP缓存规范对整个响应实施缓存.ASP.NET Core 支持多种不同的缓存. 常见缓存响应的四种方式 1.内存缓存 顾名思义,缓存在内存中,生命周期默认伴

在mapreduce中做分布式缓存的问题

主要解决一个问题,就是针对每次mapreduce的计算的时候希望通过一个缓存可以做做些查找,希望针对map或者reduce到的每条记录可以直接在内存中找到数据,如果找不到那么需要加载到内存! 这个索引的结构也就是 <分区文件名字,开始position,结束position> 这个三元组.   原始数据如上图所示,现在还需要一个meta data去组织数据   比如固定key1以后的按照key2做排序后split形成的partition文件如下: 这个文件就是最后的partition文件,注意:

应用服务器性能优化之分布式缓存-分布式缓存架构

分布式缓存是指缓存部署在多个服务器组成的服务器集群中,以集群的方式提供缓存服务,其架构方式主要有两种,一种是以JBoss Cache为代表的需要同步更新的分布式缓存,一种是以Memchached为代表的互不通信的分布式缓存. 1.JBoss Cache Jboss Cache的分布式缓存在集群中的每一台服务器都缓存相同的数据,当集群中的某台服务器的缓存数据更新时,会通知集群中的其他服务器更新或者清除缓存.JBoss Cache通常将应用程序和缓存部署在同一台服务器上,应用程序可以从本地快速获取缓

MapReduce分布式缓存程序,无法在Windows下的Eclipse中执行问题解决

在写mapreduce程序中经常要用到hadoop自动的分布式缓存DistributedCache(新版本已经换新的API),但是在windows下Eclipse中执行,会出现类似如下错误: 2016-03-03 10:53:21,424 WARN [main] util.NativeCodeLoader (NativeCodeLoader.java:<clinit>(62)) - Unable to load native-hadoop library for your platform..

C# Azure 存储-分布式缓存Redis在session中的配置

1. 开始 对于分布式的缓存,平常的session的处理是一个用户对应一台分布式的机器,如果这台机器中途挂机或者不能处理这个用户session的情况发生,则此用户的session会丢失,会发生不可预知的错误.如下图: 如果用Redis的分布式缓存,则能避免上面的情况.因为session是保存在Redis中,不会有丢失的情况,就算中途有服务器A挂掉.如下图: 2. 代码 1)在包管理器中,输入下面的包,安装 Install-Package Microsoft.Web.RedisSessionSta

在Hibernate中使用Memcached作为一个二级分布式缓存

转自:http://www.blogjava.net/xmatthew/archive/2008/08/20/223293.html hibernate-memcached--在Hibernate中使用Memcached作为一个二级分布式缓存 今天在网上看到一个用Memcached作为Hibernate二级分布式缓存,感觉挺有兴趣,就是尝试用了,感觉还不错,就推荐给大家看一下. 官方网址: http://code.google.com/p/hibernate-memcached/目前最新版本为1

Discuz!NT中集成Memcached分布式缓存

大约在两年前我写过一篇关于Discuz!NT缓存架构的文章,在那篇文章的结尾介绍了在IIS中如果开启多个应用程序池会造成多个缓存实例之间数据同步的问题.虽然给出了一个解决方案,但无形中却把压力转移到了磁盘I/O上(多个进程并发访问cache.config文件).其实从那时起我就开始关注有什么更好的方案,当然今天本文中所说的Memcached,以及Velocity等这类的分布式缓存方案之前都考虑过,但一直未能决定该使用那个.起码Velocity要在.net 4.0之后才会提供,虽然是原生态,但有些

Sharepoint2013 中想要将网站另存为模板步骤

Sharepoint2013 中想要将网站另存为模板步骤 第一步:使用SPD打开想要另存为模板的网站,找到网站选项: 第二步:点击打开网站选项,找到一个SaveSiteAsTemplateEnabled默认是false,点击打修改为true,并应用; 然后在SPD中找到该网站的上一层的点击子网站找到刚才设置过的网站点击导航中的“另存为模板”: 如果想把顶级站点另存为模板 那么你只能设置完后 输入“网站IP/_layouts/15/savetmpl.aspx”地址进行另存了~~~~

Discuz!NT中集成Memcached分布式缓存(转)

大约在两年前我写过一篇关于Discuz!NT缓存架构的文章,在那篇文章的结尾介绍了在IIS中如果开启多个应用程序池会造成多个缓存实例之间数据同步的问题.虽然给出了一个解决方案,但无形中却把压力转移到了磁盘I/O上(多个进程并发访问cache.config文件).其实从那时起我就开始关注有什么更好的方案,当然今天本文中所说的Memcached,以及Velocity等这类的分布式缓存方案之前都考虑过,但一直未能决定该使用那个.起码Velocity要在.net 4.0之后才会提供,虽然是原生态,但有些