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数据恢复杂记的更多相关文章
- elasticsearch indices.recovery 流程分析(索引的_open操作也会触发recovery)——主分片recovery主要是从translog里恢复之前未写完的index,副分片recovery主要是从主分片copy segment和translog来进行恢复
摘自:https://www.easyice.cn/archives/231 elasticsearch indices.recovery 流程分析与速度优化 目录 [隐藏] 主分片恢复流程 副本分片 ...
- Elasticsearch运维经验总结
Elasticsearch运维经验总结 2018年12月10日 16:38:41 运小白 阅读数 3811 版本说明:5.6.4(要严格注意ES及其插件.第三方工具的版本匹配关系) 系统负载:(日 ...
- Elasitcsearch7.X集群/索引备份与恢复实战
文章转载自:https://mp.weixin.qq.com/s/_0RlojDsE30CeDSyLNP44w 1.问题引出 ES中文社区中,有如下问题: 问题1:存储数据,data目录从一个机器直接 ...
- #研发解决方案介绍#基于ES的搜索+筛选+排序解决方案
郑昀 基于胡耀华和王超的设计文档 最后更新于2014/12/3 关键词:ElasticSearch.Lucene.solr.搜索.facet.高可用.可伸缩.mongodb.SearchHub.商品中 ...
- elasticsearch 口水篇(5)es分布式集群初探
es有很多特性,分布式.副本集.负载均衡.容灾等. 我们先搭建一个很简单的分布式集群(伪),在同一机器上配置三个es,配置分别如下: cluster.name: foxCluster node.nam ...
- es配置说明
cluster代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来 ...
- ES配置详解
elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本配置文件,第二个是日志配置文件,es也是使用log4j来 ...
- ES 18 - (底层原理) Elasticsearch写入索引数据的过程 以及优化写入过程
目录 1 Lucene操作document的流程 1.1 添加document的流程 1.2 删除document的流程 2 优化写入流程 - 实现近实时搜索 2.1 流程的改进思路 2.2 设置re ...
- ES 03 - 初探Elasticsearch的主要配置文件(以6.6.0版本为例)
目录 1 elasticsearch.yml(ES服务配置) 1.1 Cluster集群配置 1.2 Node节点配置 1.3 Paths路径配置 1.4 Memory内存配置 1.5 Network ...
随机推荐
- bzoj:1675 [Usaco2005 Feb]Rigging the Bovine Election 竞选划区
Description It's election time. The farm is partitioned into a 5x5 grid of cow locations, each of wh ...
- Number Sequence(快速幂矩阵)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1005 Number Sequence Time Limit: 2000/1000 MS (Java/O ...
- JXLS 2.4.0系列教程(五)——更进一步的应用和页面边距bug修复
注:本文代码建立于前面写的代码.不过不看也不要紧. 前面的文章把JXLS 2.4.0 的基本使用写了一遍,现在讲讲一些更进一步的使用方法.我只写一些我用到过的方法,更多的高级使用方法请参考官网. ht ...
- html日历(3)
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 基于TypeScript装饰器定义Express RESTful 服务
前言 本文主要讲解如何使用TypeScript装饰器定义Express路由.文中出现的代码经过简化不能直接运行,完整代码的请戳:https://github.com/WinfredWang/expre ...
- iOS钉钉远程打卡助手(支持越狱和非越狱)
前言:本文主要讲述使用hook方式实现钉钉远程打卡功能,涉及到tweak相关知识,如果你不想了解具体实现细节可直接到我的Github地址参考安装(包含越狱和非越狱两种方法) 你是不是像小编一样每个 ...
- 使用vue框架运行npm run dev 时报错解决
使用使用vue框架运行npm run dev 时报错 如下: 原因: localhost:8080 有可能其他软件占用了,导致其他问题的出现 我们可以动态修改地址 解决: 进入项目文件的config文 ...
- boostrap ajax表单验证提交
=============================================================================== 1. 1 <link href=& ...
- js的join和split
1,split 将字符串转为数组 第一个参数必须,可以是字符串和正则表达式,表示从该地方开始分割字符串:第二个参数可选,表示返回数组的最大长度. split():把整个字符串塞入一个数组中 spl ...
- springmvc +mybatis 配置多数据源
1.数据源配置: jdbc_multiple.properties: # MySQL #======================================================== ...