Elasticsearch Unassigned Process
Contents
问题
在使用ES
时,有时候在服务器突然挂掉后重启时,会导致有Shard
的状态变成 了UNASSIGEND
,此时,本身集群的数据是不准确的,因为这一个Shard
的数据丢失了。这个时候,就需要手动去处理了。
解决方法
1. 直接强制分配一个空的shard
ES
可以直接强制分配一个空的主shard
,此时原本的数据就会丢失了。
请求:
|
|
这种适合于不需要保留数据的情况。
2. 从旧数据强制分配一个shard
当某一个shard
状态为unassigned
时,并不一定表示它的数据丢失了,我们可以通过索引的uuid
来进行查找,看是否还有保留在某一台机器上。
|
|
通过这个命令,就可以找到对应的目录下是否有响应shard
的数据。
注意: 这个命令需要在当前集群的所有机器上执行,才能确保能够找到
当我们找到数据之后,只需要调用响应的API
即可强制分配到当前机器,使得数据得以恢复过来:
|
|