elasticsearch - 从多节点elasticsearch集群创建快照,在单节点上恢复,分片红色
问题描述
我们有一个正在运行的具有多个索引的 elasticsearch 6.6 实例,因此我拍摄了我感兴趣的两个索引的快照。我设置了一个新的 dockerized 单节点 elasticsearch 6.6 实例,并尝试通过使用恢复快照卷曲。索引恢复了,但是 10 个分片都是红色的。因此,我删除了两个恢复的索引,然后再次运行该操作,但这次是在 Kibana 中。在这个恢复操作之后,从同一个快照恢复,分片现在都是绿色的,我查询弹性搜索的应用程序正在运行!
我很抱歉没有输出,但我已经离开了一周的工作,所以我还不能发布我的快照和恢复的细节。你们中是否有人对可能导致通过 curl 进行还原似乎有效但碎片全是红色的原因有什么建议?为什么通过kibana删除和重新恢复效果更好?拍摄快照时,我肯定将 include_global_state 设置为 false。而且,在星期一,如果不清楚为什么会发生这种情况,那么我会发布更多细节。提前致谢!
解决方案
这似乎只是一个权限问题!我使用 docker-compose 启动了容器,然后调用了docker-compose exec my_elastic_container /bin/bash /scripts/import-data.sh
. 该脚本从另一个集群中提取了包含 elasticsearch 快照的 gzip 压缩 tar 文件。好吧,doingdocker-compose exec
表示这个动作是由容器的 root 用户完成的,但是快照恢复操作是由 elasticsearch 完成的,它是由 elasticsearch 用户启动的。如果我chown -R elasticsearch:root /backups/*
在提取存档后执行,然后调用恢复快照,一切正常。明天我将进行更彻底的测试,如果我错过任何内容,请编辑此答案。
推荐阅读
- python - 如何读取矢量文件并使用标准只写入索引
- javascript - 如何将 getElementbyID 脚本更改为 getElementsbyclassname?
- d3.js - 如何使用 d3.scaleLinear 在 d3 中查找地图的半径
- mysql - 优化 SQL 查询中的 JOIN 和 WHERE 操作
- python - 通过使用 Pandas Python 删除和转换列来格式化 csv 文件
- android-livedata - ViewModel Live Data 观察者调用轮换
- string - 如何在 Shape.SetFormula 中表达 Double?
- linux - 仅使用一个 GPU 即可通过 GPU 直通 Hyper-v
- android - 读取二维码;错误:找不到符号变量 AppConstants
- flutter - 如何在 Flutter 中进行条件渲染