索引恢复 API

返回有关一个或多个索引的正在进行和已完成的分片恢复的信息。对于数据流,API 返回流的备份索引的信息。

  1. GET /my-index-000001/_recovery

请求

GET /<target>/_recovery

GET /_recovery

前置条件

  • 如果 Elasticsearch 安全特性启用,你使用此 API 必须有 monitormanage 索引权限

描述

使用索引恢复 API 获取有关正在进行和已完成的分片恢复的信息。

分片恢复是从主碎片同步副本碎片的过程。完成后,副本碎片可用于搜索。

在以下过程中自动进行恢复:

  • 节点启动或失败。这种类型的恢复称为本地存储恢复。

  • 主分片复制。

  • 将分片重新定位到同一集群中的不同节点。

  • 快照恢复

路径参数

  • <target>

    (可选,字符串)用于限制请求的,逗号分隔的数据流、索引和别名的列表。支持通配符()。要以所有数据流和索引为目标,忽略此参数或使用 `_all`。

查询参数

  • active_only

    (可选,布尔值)如果为 true,响应仅包括正在进行的分片恢复。默认为 false

  • detailed

    (可选,布尔值)如果为 true,响应包含关于分片恢复的详细信息。默认为 false

  • index

    (可选,字符串)用于限制请求的,逗号分隔的索引名的列表。

响应体

  • id

    (整数)分片 ID

  • type

    (字符串)恢复类型,返回值包含:

    • STORE

      恢复与节点启动或故障有关。这种类型的恢复称为本地存储恢复。

    • SNAPSHOT

      恢复与快照恢复有关。

    • REPLICA

      恢复与主分片复本有关。

    • RELOCATING

      恢复与将分片重新定位到同一集群中的不同节点有关。

  • STAGE

    (字符串)恢复阶段。返回值包含:

    • DONE

      完成。

    • FINALIZE

      清除。

    • INDEX

      读取索引元数据并将字节从源复制到目标。

    • INIT

      恢复还未开始。

    • START

      启动恢复过程;打开索引以供使用。

    • TRANSLOG

      重放事务日志。

  • primary

    (布尔值)如果为 true,分片是主分片。

  • start_time

    (时间戳)恢复开始的时间戳。

  • stop_time

    (字符串)恢复结束的时间戳。

  • total_time_in_millis

    (字符串)以毫秒为单位,恢复分片的总时长。

  • source

    (对象)恢复的源。可以包含:

    • 如果从快照恢复,则为存储库描述
    • 源节点的描述
  • target

    (对象)目标节点。

  • index

    (对象)关于物理索引恢复的统计信息。

  • translog

    (对象)关于事务日志恢复的统计信息。

  • start

    (对象)关于打开和启动索引时间的统计信息。

示例

获取多个数据流和索引的恢复信息

  1. GET index1,index2/_recovery?human

获取集群中所有数据流和索引的段信息

  1. GET /_recovery?human

API 返回以下响应:

  1. {
  2. "index1" : {
  3. "shards" : [ {
  4. "id" : 0,
  5. "type" : "SNAPSHOT",
  6. "stage" : "INDEX",
  7. "primary" : true,
  8. "start_time" : "2014-02-24T12:15:59.716",
  9. "start_time_in_millis": 1393244159716,
  10. "stop_time" : "0s",
  11. "stop_time_in_millis" : 0,
  12. "total_time" : "2.9m",
  13. "total_time_in_millis" : 175576,
  14. "source" : {
  15. "repository" : "my_repository",
  16. "snapshot" : "my_snapshot",
  17. "index" : "index1",
  18. "version" : "{version}",
  19. "restoreUUID": "PDh1ZAOaRbiGIVtCvZOMww"
  20. },
  21. "target" : {
  22. "id" : "ryqJ5lO5S4-lSFbGntkEkg",
  23. "host" : "my.fqdn",
  24. "transport_address" : "my.fqdn",
  25. "ip" : "10.0.1.7",
  26. "name" : "my_es_node"
  27. },
  28. "index" : {
  29. "size" : {
  30. "total" : "75.4mb",
  31. "total_in_bytes" : 79063092,
  32. "reused" : "0b",
  33. "reused_in_bytes" : 0,
  34. "recovered" : "65.7mb",
  35. "recovered_in_bytes" : 68891939,
  36. "percent" : "87.1%"
  37. },
  38. "files" : {
  39. "total" : 73,
  40. "reused" : 0,
  41. "recovered" : 69,
  42. "percent" : "94.5%"
  43. },
  44. "total_time" : "0s",
  45. "total_time_in_millis" : 0,
  46. "source_throttle_time" : "0s",
  47. "source_throttle_time_in_millis" : 0,
  48. "target_throttle_time" : "0s",
  49. "target_throttle_time_in_millis" : 0
  50. },
  51. "translog" : {
  52. "recovered" : 0,
  53. "total" : 0,
  54. "percent" : "100.0%",
  55. "total_on_start" : 0,
  56. "total_time" : "0s",
  57. "total_time_in_millis" : 0,
  58. },
  59. "verify_index" : {
  60. "check_index_time" : "0s",
  61. "check_index_time_in_millis" : 0,
  62. "total_time" : "0s",
  63. "total_time_in_millis" : 0
  64. }
  65. } ]
  66. }
  67. }

此响应包括有关恢复单个分片的单个索引的信息。恢复的源是快照存储库,恢复的目标是 my_es_node

响应还包括恢复的文件和字节的数量和百分比。

获取详细的恢复信息

要获取恢复中的物理文件列表,设置查询参数 detailedtrue

  1. GET _recovery?human&detailed=true

API 返回以下响应:

  1. {
  2. "index1" : {
  3. "shards" : [ {
  4. "id" : 0,
  5. "type" : "STORE",
  6. "stage" : "DONE",
  7. "primary" : true,
  8. "start_time" : "2014-02-24T12:38:06.349",
  9. "start_time_in_millis" : "1393245486349",
  10. "stop_time" : "2014-02-24T12:38:08.464",
  11. "stop_time_in_millis" : "1393245488464",
  12. "total_time" : "2.1s",
  13. "total_time_in_millis" : 2115,
  14. "source" : {
  15. "id" : "RGMdRc-yQWWKIBM4DGvwqQ",
  16. "host" : "my.fqdn",
  17. "transport_address" : "my.fqdn",
  18. "ip" : "10.0.1.7",
  19. "name" : "my_es_node"
  20. },
  21. "target" : {
  22. "id" : "RGMdRc-yQWWKIBM4DGvwqQ",
  23. "host" : "my.fqdn",
  24. "transport_address" : "my.fqdn",
  25. "ip" : "10.0.1.7",
  26. "name" : "my_es_node"
  27. },
  28. "index" : {
  29. "size" : {
  30. "total" : "24.7mb",
  31. "total_in_bytes" : 26001617,
  32. "reused" : "24.7mb",
  33. "reused_in_bytes" : 26001617,
  34. "recovered" : "0b",
  35. "recovered_in_bytes" : 0,
  36. "percent" : "100.0%"
  37. },
  38. "files" : {
  39. "total" : 26,
  40. "reused" : 26,
  41. "recovered" : 0,
  42. "percent" : "100.0%",
  43. "details" : [ {
  44. "name" : "segments.gen",
  45. "length" : 20,
  46. "recovered" : 20
  47. }, {
  48. "name" : "_0.cfs",
  49. "length" : 135306,
  50. "recovered" : 135306
  51. }, {
  52. "name" : "segments_2",
  53. "length" : 251,
  54. "recovered" : 251
  55. }
  56. ]
  57. },
  58. "total_time" : "2ms",
  59. "total_time_in_millis" : 2,
  60. "source_throttle_time" : "0s",
  61. "source_throttle_time_in_millis" : 0,
  62. "target_throttle_time" : "0s",
  63. "target_throttle_time_in_millis" : 0
  64. },
  65. "translog" : {
  66. "recovered" : 71,
  67. "total" : 0,
  68. "percent" : "100.0%",
  69. "total_on_start" : 0,
  70. "total_time" : "2.0s",
  71. "total_time_in_millis" : 2025
  72. },
  73. "verify_index" : {
  74. "check_index_time" : 0,
  75. "check_index_time_in_millis" : 0,
  76. "total_time" : "88ms",
  77. "total_time_in_millis" : 88
  78. }
  79. } ]
  80. }
  81. }

响应包括恢复的所有物理文件及其大小的列表。

响应还包括各个恢复阶段的计时(以毫秒为单位):

  • 索引检索

  • 音译重播

  • 索引开始时间

此响应表示恢复已完成。所有恢复(无论是正在进行的还是已完成的)都保持在集群状态,并且可以随时报告。

要仅返回有关正在进行的恢复的信息,设置查询参数 active_onlytrue

原文链接