ES报错:
Caused by: org.apache.lucene.store.LockObtainFailedException: Lock held by another xxx write.lock
这是ES异常关闭导致索引的写锁未释放,索引一直处于red状态
解决方法:
-
停掉ES服务
-
找到相应的数据目录,找到对应的索引写锁文件write.lock所在位置,删除该文件
-
启动ES服务
如果有很多个索引都是该报错,可以使用批量处理的方法
批量处理方法:
-
停掉ES服务
-
进入数据目录:cd nodes/0/
-
查看写锁:find . -name write.lock > lock_list.txt
-
批量删除写锁
bash
#!/bin/bash
# delete write.lock
for i in `cat lock_list.txt`
do
rm -f $i
done