gpt4 book ai didi

Elasticsearch:获取当前正在运行的快照操作

转载 作者:行者123 更新时间:2023-12-02 23:28:52 28 4
gpt4 key购买 nike

假设,需要自动将 2 个或更多快照恢复到弹性集群。
需要检测,快照操作在下一个api调用之前完成:_snaphot/<repository>/<snapshot>/_restore .
如果我在快照恢复时调用,集群响应 503。

我尝试将线程池 api 与运行快照操作一起使用:curl -XGET 'http://127.0.0.1:9200/_cat/thread_pool?h=snapshot.active但是,无论如何它都会返回 0。

获取有关当前正在运行的还原操作的信息的正确方法是什么?

更新:
一个如何设法与 ansible 一起工作的示例:

- name: shell | restore latest snapshot
uri:
url: "http://127.0.0.1:9200/_snapshot/{{ es_snapshot_repository }}/snapshot_name/_restore"
method: "POST"
body: '{"index_settings":{"index.number_of_replicas": 0}}'
body_format: json

- name: shell | get state of active recovering operations | log indices
uri:
url: "http://127.0.0.1:9200/_recovery?active_only"
method: "GET"
register: response
until: "response.json == {}"
retries: 6
delay: 10

最佳答案

您可以使用 Indices Recovery API 监控正在恢复的索引的状态。 .
最简单的方法是查看 stage属性(property):

init: Recovery has not started

index: Reading index meta-data and copying bytes from source to destination

start: Starting the engine;

opening the index for use translog: Replaying transaction log

finalize: Cleanup done: Complete

done: Complete


参数 active_only返回关于不在 done 中的分片的信息状态: http://127.0.0.1:9200/_recovery?active_only

关于Elasticsearch:获取当前正在运行的快照操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38871721/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com