es数据恢复杂记

Posted lnlvinso

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了es数据恢复杂记相关的知识,希望对你有一定的参考价值。

  kill -9或者断电等原因异常,es在重启后,会通过translog来进行数据恢复。

  默认的恢复速度是较慢的,可以设置indices.recovery.current_streams:10增大恢复的线程数,还可以设置indices.recovery的其他参数加快恢复的速度。

 

     但是某些情况下,如lucene文件格式错误等,重启es后无法通过自身恢复,可以考虑如下的方式。

     1.主分片是正常的,副本分片有错误,且无法通过复制机制恢复。可以考虑删除有问题的分片,集群会通过复制的方式恢复。

     2.主分片和副本分片都有错误,备份数据后,可以使用尝试恢复lucene文件。这种方式会删除有问题的段,当段很大时,会丢失很多的文件。

        java -cp /opt/software/elasticsearch/lib/lucene-core-5.3.1.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /esdata/estest/0/test/0/index -exorcise

        可以使用上面的命令尝试修复,但是一定要先备份数据。

        java -cp /opt/software/elasticsearch/lib/lucene-core-5.3.1.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex,回车后会提示使用的方法。

        参数/opt/software/elasticsearch/lib/lucene-core-5.3.1.jar是es安装目录lib目录,/esdata/estest/0/test/0/index是有问题的分片所对应的文件目录。

   

         不要删除分片文件夹下的segments_N文件,lucene5.x下该文件不会再重建。删除该文件后使用CheckIndex 也无法恢复。

         

以上是关于es数据恢复杂记的主要内容,如果未能解决你的问题,请参考以下文章

前端模块化杂记

MariaDB恢复备份杂记

数据库杂记

数据类型杂记

数据分析杂记

阅读杂记