手动执行forceMerge索引后,由于磁盘空间不够失败,索引变red,磁盘空间也没有释放,请问怎么恢复?
Elasticsearch | 作者 showme | 发布于2022年01月03日 | 阅读数:2274
软件版本 6.2.4;
运行环境 centos;
场景/上下文;手动执行forceMerge索引后,单个索引比较大,由于磁盘空间不够失败,索引变red状态,分片都是未分配UNASSIGNED状态;磁盘空间也没有释放。错误信息:"status":"INTERNAL_SERVER_ERROR","reason":{"type":"illegal_state_exception","reason":"this writer hit an unrecoverable error; cannot complete forceMergeDeletes","caused_by":{"type":"i_o_exception","reason":"No space left on device"}
请问怎么能恢复索引数据?
运行环境 centos;
场景/上下文;手动执行forceMerge索引后,单个索引比较大,由于磁盘空间不够失败,索引变red状态,分片都是未分配UNASSIGNED状态;磁盘空间也没有释放。错误信息:"status":"INTERNAL_SERVER_ERROR","reason":{"type":"illegal_state_exception","reason":"this writer hit an unrecoverable error; cannot complete forceMergeDeletes","caused_by":{"type":"i_o_exception","reason":"No space left on device"}
请问怎么能恢复索引数据?
1 个回复
zmc - ES PAAS、JuiceFS
赞同来自:
其实没太理解为什么会red,最多磁盘写爆了导致readonly,如果你这时候还有持续的写入的话,恰好磁盘写爆的节点的分片是primary,这样数据写不进去会导致red;如果是这样的话看下副本分片所在节点是否磁盘够,够的话看下是否还在forcemerge,在的话可以取消forcemerge,然后将主分片设置为一个空的分片并且指定到机器上,然后你看下写满磁盘的那个机器数据是否可以字段清理掉,不能的话你手动去目录下删掉那个shard就好了