首页 > 解决方案 > 从多节点elasticsearch集群创建快照,在单节点上恢复,分片红色

问题描述

我们有一个正在运行的具有多个索引的 elasticsearch 6.6 实例,因此我拍摄了我感兴趣的两个索引的快照。我设置了一个新的 dockerized 单节点 elasticsearch 6.6 实例,并尝试通过使用恢复快照卷曲。索引恢复了,但是 10 个分片都是红色的。因此,我删除了两个恢复的索引,然后再次运行该操作,但这次是在 Kibana 中。在这个恢复操作之后,从同一个快照恢复,分片现在都是绿色的,我查询弹性搜索的应用程序正在运行!

我很抱歉没有输出,但我已经离开了一周的工作,所以我还不能发布我的快照和恢复的细节。你们中是否有人对可能导致通过 curl 进行还原似乎有效但碎片全是红色的原因有什么建议?为什么通过kibana删除和重新恢复效果更好?拍摄快照时,我肯定将 include_global_state 设置为 false。而且,在星期一,如果不清楚为什么会发生这种情况,那么我会发布更多细节。提前致谢!

标签: elasticsearchelasticsearch-6

解决方案


这似乎只是一个权限问题!我使用 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/*在提取存档后执行,然后调用恢复快照,一切正常。明天我将进行更彻底的测试,如果我错过任何内容,请编辑此答案。


推荐阅读