cat recovery API

编辑

cat API 仅供人类通过命令行或 Kibana 控制台使用。它们 适用于应用程序使用。对于应用程序使用,请使用 索引恢复 API

返回有关正在进行和已完成的分片恢复的信息,类似于 索引恢复 API。

对于数据流,该 API 返回有关流的后备索引的信息。

请求

编辑

GET /_cat/recovery/<target>

GET /_cat/recovery

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,则您必须拥有 monitormanage 集群权限 才能使用此 API。您还必须拥有 monitormanage 索引权限 才能检索任何数据流、索引或别名。

描述

编辑

cat recovery API 返回有关分片恢复的信息,包括正在进行的和已完成的。它是 JSON 索引恢复 API 的更简洁的视图。

分片恢复是初始化分片副本的过程,例如从快照恢复主分片或从主分片创建副本分片。当分片恢复完成时,恢复的分片可用于搜索和索引。

在以下过程中会自动发生恢复

  • 首次创建索引时。
  • 当节点重新加入集群并使用其数据路径中保存的数据启动任何丢失的主分片副本时。
  • 从主分片创建新的副本分片副本。
  • 将分片副本重新定位到同一集群中的不同节点。
  • 快照恢复 操作。
  • 克隆收缩拆分 操作。

您可以使用 recoverycat recovery API 确定分片恢复的原因。

路径参数

编辑
<target>
(可选,字符串) 用于限制请求的数据流、索引和别名的逗号分隔列表。支持通配符 (*)。要定位所有数据流和索引,请省略此参数或使用 *_all

查询参数

编辑
active_only
(可选,布尔值) 如果为 true,则响应仅包括正在进行的分片恢复。默认为 false
bytes
(可选,字节大小单位) 用于显示字节值的单位。
detailed
(可选,布尔值) 如果为 true,则响应包括有关分片恢复的详细信息。默认为 false
format
(可选,字符串) HTTP accept header 的简短版本。有效值包括 JSON、YAML 等。
h
(可选,字符串) 要显示的列名的逗号分隔列表。
help
(可选,布尔值) 如果为 true,则响应包括帮助信息。默认为 false
index
(可选,字符串) 用于限制请求的索引名称的逗号分隔列表或通配符表达式。
s
(可选,字符串) 用于对响应进行排序的列名或列别名的逗号分隔列表。
time
(可选,时间单位) 用于显示时间值的单位。
v
(可选,布尔值) 如果为 true,则响应包括列标题。默认为 false

示例

编辑

没有正在进行的恢复的示例

编辑
resp = client.cat.recovery(
    v=True,
)
print(resp)
response = client.cat.recovery(
  v: true
)
puts response
const response = await client.cat.recovery({
  v: "true",
});
console.log(response);
GET _cat/recovery?v=true

API 返回以下响应

index             shard time type  stage source_host source_node target_host target_node repository snapshot files files_recovered files_percent files_total bytes bytes_recovered bytes_percent bytes_total translog_ops translog_ops_recovered translog_ops_percent
my-index-000001   0     13ms store done  n/a         n/a         127.0.0.1   node-0      n/a        n/a      0     0               100%          13          0b    0b              100%          9928b       0            0                      100.0%

在此示例响应中,源节点和目标节点相同,因为恢复类型为 store,这意味着它们是从节点启动时的本地存储读取的。

具有实时分片恢复的示例

编辑

通过增加索引的副本计数并使另一个节点联机以托管副本,您可以检索有关正在进行的恢复的信息。

resp = client.cat.recovery(
    v=True,
    h="i,s,t,ty,st,shost,thost,f,fp,b,bp",
)
print(resp)
response = client.cat.recovery(
  v: true,
  h: 'i,s,t,ty,st,shost,thost,f,fp,b,bp'
)
puts response
const response = await client.cat.recovery({
  v: "true",
  h: "i,s,t,ty,st,shost,thost,f,fp,b,bp",
});
console.log(response);
GET _cat/recovery?v=true&h=i,s,t,ty,st,shost,thost,f,fp,b,bp

API 返回以下响应

i               s t      ty   st    shost       thost       f     fp      b  bp
my-index-000001 0 1252ms peer done  192.168.1.1 192.168.1.2 0     100.0%  0b 100.0%

在此示例响应中,恢复类型为 peer,这意味着分片从另一个节点恢复。返回的文件和字节是实时测量值。

具有快照恢复的示例

编辑

您可以使用 快照和恢复 API 恢复索引的备份。您可以使用 cat recovery API 检索有关快照恢复的信息。

resp = client.cat.recovery(
    v=True,
    h="i,s,t,ty,st,rep,snap,f,fp,b,bp",
)
print(resp)
response = client.cat.recovery(
  v: true,
  h: 'i,s,t,ty,st,rep,snap,f,fp,b,bp'
)
puts response
const response = await client.cat.recovery({
  v: "true",
  h: "i,s,t,ty,st,rep,snap,f,fp,b,bp",
});
console.log(response);
GET _cat/recovery?v=true&h=i,s,t,ty,st,rep,snap,f,fp,b,bp

API 返回以下响应,恢复类型为 snapshot

i               s t      ty       st    rep     snap   f  fp   b     bp
my-index-000001 0 1978ms snapshot done  my-repo snap-1 79 8.0% 12086 9.0%