elasticsearch 快照丢失部分的恢复 ----- 一种解决方式

这篇具有很好参考价值的文章主要介绍了elasticsearch 快照丢失部分的恢复 ----- 一种解决方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前文

  es提供了数据备份和恢复的方式,可以很方便的供数据备份,同时应用于多套环境,且可以自定义备份目标(比如具体到索引),可以自定义备份策略(比如每天早上定时备份),可以说是非常方便,关于如何备份,网上的文档很多,有机会我也出一篇。另外,关于snap和restore,通过kibana可以非常方便的管理,所以es和kibana还是非常搭配。
  本质上的备份是服务于多节点的es cluster,因为多节点,由于es本身的shards机制,会随机分配在不同的节点;而所谓的备份,则是将这些shards拷贝一份到备份目录,那么此时各个不同的shards要拷贝到同个目录就比较麻烦,所以备份要建立nfs,通过多个节点读取相同的nfs server,将数据都备份在同个目录,于是一切都轻松可解。举例说,假如是3个节点的es集群,此时需要再开发备份节点,将这个备份节点设置为nfs的server,同时将三个节点设置为nfs client,关联上nfs server的目录,实现同目录的关联。
  此次快照丢失的场景是,当我需要恢复数据的时候,发现仅2个primary shards和replica shards可以恢复,而第3个则一直不能恢复(unsigned);而且有时恢复又变成仅恢复1个primary shard和replica shard,另外2个都恢复不了(unsigned)。所以恢复变得很随机,且不稳定。

分析

  此时要借助工具来排查,首选是 kibana 和 es-head(chrom插件),根据这两个定位问题。
  首先在es-head上,会显示unsigned的具体是哪些分片,通过点击unsigned分片,显示原因有:

SnapshotMissingException[[backup:xxxx-htswmp2zr9ivjz8tq8uk1q/KaabJorhTfK69IaZ2T3spw] is missing]

  原因很长,这里节选最重要的,说明备份目录里名字是KaabJorhTfK69IaZ2T3spw的备份丢失,导致其无法恢复。于是登上对应的节点,进入备份目录通过find查找,发现目录的确不存在,同时发现nfs连接不上了,导致各个shards的备份存储分散在各个节点服务器上,所以出现了is missing的情况,所以直接定位到是nfs丢失连接导致的。
  如果问题原因有变,需要通过kibana查询两个信息来查看原因:

GET /_cluster/allocation/explain  # 获取集群内分配分片失败的原因,重点查看其中explanation的解释

GET _cat/shards?h=index,shard,prirep,state,unassigned.reason  # 这也是获取分片失败的原因

# 如果是偶发性的失败,或者原因不明的失败,可以尝试重新分配,执行:
POST /_cluster/reroute?retry_failed=true

解决

  识别nfs如何连接不上即能解决,直接mount nfs-server:/backup /backup,报错mount.nfs: no route to host,所以原因是nfs连接被server端拒绝了,直接关闭nfs server的firewalld(systemctl stop firewalld;systemctl disable),然后重新mount即可。
  但是上述是恢复nfs保证备份时数据都在同一个目录下,那已经执行了备份,分散在不同节点的如何处理? 可以选择一个节点为目标,然后将另外2个节点的该目录都拷贝过来即可。举例说,我们的备份目录一般是存放在 /backup/indices/xxxx,这个xxxx就是es生成的标识md5码,此时每个节点,都有这样的目录,在这个目录下继续分 0/1/2三个目录,标识3个shard,将这三个目录在三个节点合并即可。文章来源地址https://www.toymoban.com/news/detail-554772.html

到了这里,关于elasticsearch 快照丢失部分的恢复 ----- 一种解决方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Curl 命令方式对elasticsearch备份和恢复—— 筑梦之路

    前提条件: 修改elasticsearch的配置文件elasticsearch.yml: 创建备份仓库: 备份数据: 中止备份: 查看备份信息: 恢复数据:   参考资料: Elasticsearch使用:Snapshot备份与恢复 - 腾讯云开发者社区-腾讯云 ES集群数据迁移 - 简书 https://www.elastic.co/guide/en/elasticsearch/reference/current/s

    2024年02月12日
    浏览(41)
  • ES系列之快照与恢复

    ES底层核心基于lucene,一个分片即是一个lucene对象实例,ES快照(snapshot)本质是对lucene物理文件的拷贝。 增量快照的核心是比较lucene segements不可变文件信息,每次创建快照时会建立一个IndexCommit提交点,包含segmentsfilename(segment是lucene的不可变对象),在处理分片快照请求时会先查

    2024年04月26日
    浏览(30)
  • 一种巧妙的解决方案,一键恢复Win11中消失不见的“Microsoft Store”微软应用商店

      自从五月份将电脑从Win10升级到Win11后,都没有使用 Microsoft Store 微软应用商店。刚刚想使用,突然发现我的 Windows 11 操作系统里居然没有 Microsoft Store 微软应用商店。   如何找回不见了的 Microsoft Store 微软应用商店呢?只好去百度了。。   点进百度搜索出来的第一个

    2024年02月04日
    浏览(86)
  • ES快照备份及恢复(ES数据迁移)

    目录 ES配置仓库 elasticsearch.yml 注册仓库 仓库相关操作 查看仓库 删除仓库 创建快照 快照相关操作 查询快照 删除快照 恢复快照 快照全量恢复 指定索引恢复 恢复时重命名 合并索引 索引相关操作 查询全量索引 查询索引状态 打开/关闭索引 删除索引 迁移步骤说明: 需搭建共

    2023年04月09日
    浏览(43)
  • Spring Boot进阶(61):【技巧大揭秘】FastJson序列化遇到部分属性丢失?这里有一招优雅解决!

            一提到FastJson,就没有不清楚它为何物的,毕竟FastJson出自一位阿里工程师所开源的一款JSON解析器和生成器(反序列化与序列化组件),几乎所有项目都有它的身影,起码我开发过的九点九成项目都有用到它...         此刻,于是乎很多同学便开始脑补了,作者难道今

    2024年02月08日
    浏览(44)
  • 阿里云快照如何恢复到另外一台服务器

    近期碰到一个业务问题,客户运行一段时间的项目发现缺少图片资源,需要找到以前的图片资源上传到现在的服务器就可以解决问题了。但是阿里云这边只有每天的快照,而快照只能回滚操作,也即是如果快照回滚 就会把最近一段时间的服务器代码和各种数据覆盖掉,这不是

    2024年02月16日
    浏览(70)
  • SQL中如何用快照,恢复被误删的数据?

    什么是快照 数据库快照是sql server 2005的一个新功能。MSDN上对它的定义是: 数据库快照是数据库(称为“源数据库”)的只读静态视图。在创建时,每个数据库快照在事务上都与源数据库一致。在创建数据库快照时,源数据库通常会有打开的事务。在快照可以使用之前,打开

    2024年02月13日
    浏览(44)
  • vcruntime140.dll丢失的解决方法分享,多种修复方式

    随着最新版本的Windows 10操作系统推出,个人电脑的性能和功能得到了巨大提升。然而,尽管Microsoft已经不断更新固件和驱动程序,但仍然存在一些常见问题,例如“ vcruntime140.dll丢失 ”错误。这个错误可能会导致某些应用程序无法正常运行,并给你带来很多麻烦。本文将详细

    2024年02月07日
    浏览(62)
  • 解决执行 spark.sql 时版本不兼容的一种方式

    场景描述 hive 数据表的导入导出功能部分代码如下所示,使用 assemble 将 Java 程序和 spark 相关依赖一起打成 jar 包,最后 spark-submit 提交 jar 到集群执行。 在CDH6.3.2 集群(后面称CDH),当程序执行 spark.sql 导入本地磁盘 csv 数据到 hive 表时出现异常(如下),但导出表数据到本地

    2024年02月12日
    浏览(60)
  • 解决pip下载慢的几种方式,最后一种一劳永逸

    我们下载模块的话,如果直接pip安装,一般下载会非常慢,运气不好,直接下载超时,因为默认是使用国外的源进行下载。不知道方法的话,直接弄一天也是有可能的。 如果将下载源修改为国内的,那速度直接起飞。 一般来说,我们可以直接在安装模块的时候,加上镜像源

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包