API восстановления индекса
Возвращает информацию о текущем и завершенном восстановлении фрагментов для одного или нескольких индексов. Для потоков данных API возвращает информацию для базовых индексов потока.
GET /my-index-000001/_recovery
Запрос
GET /<target>/_recovery
GET /_recovery
Предварительные условия
- Если включены функции безопасности Elasticsearch, у вас должна быть
monitorилиmanageпривилегия доступа к индексу для целевого потока данных, индекса или псевдонима.
Описание
Используйте API восстановления индекса, чтобы получить информацию о текущем и завершенном восстановлении фрагментов.
Восстановление фрагментов — это процесс синхронизации фрагмента реплики с первичным фрагментом. После завершения фрагмент реплики будет доступен для поиска.
Восстановление автоматически происходит во время следующих процессов:
- Запуск узла. Этот тип восстановления называется восстановлением локального хранилища.
- Репликация первичного фрагмента.
- Перемещение фрагмента на другой узел в том же кластере.
- Операция восстановления из снимка.
- Операции клонирования, сжатия или разбиения индекса.
Параметры пути
-
<target> - (Необязательно, строка) Список данных потоков, индексов и псевдонимов, разделенных запятыми, используемых для ограничения запроса. Поддерживаются подстановочные знаки (
*). Для выбора всех потоков данных и индексов опустите этот параметр или используйте*или_all.
Параметры запроса
-
active_only - (Необязательно, Булево) Если
true, в ответ будут включены только текущие восстановления фрагментов. По умолчанию значениеfalse. -
detailed - (Необязательно, Булево) Если
true, ответ включает подробную информацию о восстановлении фрагментов. По умолчаниюfalse. -
index - (Необязательно, строка) Список или выражение с подстановочными знаками имён индексов, разделенных запятыми, используемых для ограничения запроса.
Тело ответа
-
id - (Целое число) ID фрагмента.
-
type -
(Строка) Источник восстановления фрагмента. Возможные значения включают:
-
EMPTY_STORE - Пустое хранилище. Указывает на новый первичный фрагмент или принудительное назначение пустого первичного фрагмента с помощью API перенаправления кластера.
-
EXISTING_STORE - Хранилище существующего первичного фрагмента. Указывает, что восстановление связано с запуском узла или назначением существующего первичного фрагмента.
-
LOCAL_SHARDS - Фрагменты другого индекса на том же узле. Указывает, что восстановление связано с операциями клонирования, сжатия или разбиения.
-
PEER - Первичный фрагмент на другом узле. Указывает, что восстановление связано с репликацией фрагментов.
-
SNAPSHOT - Снимок. Указывает, что восстановление связано с операцией восстановления из снимка.
-
-
STAGE -
(Строка) Этап восстановления. Возможные значения включают:
-
INIT - Восстановление не начато.
-
INDEX - Чтение метаданных индекса и копирование байтов из источника в место назначения.
-
VERIFY_INDEX - Проверка целостности индекса.
-
TRANSLOG - Воспроизведение журнала транзакций.
-
FINALIZE - Очистка.
-
DONE - Завершено.
-
-
primary - (Булево) Если
true, фрагмент является первичным фрагментом. -
start_time - (Строка) Отметка времени начала восстановления.
-
stop_time - (Строка) Отметка времени завершения восстановления.
-
total_time_in_millis - (Строка) Общее время восстановления фрагмента в миллисекундах.
-
source -
(Объект) Источник восстановления. Может включать:
- Описание хранилища, если восстановление из снимка
- Описание узла-источника
-
target - (Объект) Узел назначения.
-
index - (Объект) Статистика физического восстановления индекса.
-
translog - (Объект) Статистика восстановления журнала транзакций.
-
start - (Объект) Статистика времени открытия и запуска индекса.
Примеры
Получение информации о восстановлении для нескольких потоков данных и индексов
GET index1,index2/_recovery?human
Получение информации о сегментах для всех потоков данных и индексов в кластере
GET /_recovery?human
API возвращает следующий ответ:
{
"index1" : {
"shards" : [ {
"id" : 0,
"type" : "SNAPSHOT",
"stage" : "INDEX",
"primary" : true,
"start_time" : "2014-02-24T12:15:59.716",
"start_time_in_millis": 1393244159716,
"stop_time" : "0s",
"stop_time_in_millis" : 0,
"total_time" : "2.9m",
"total_time_in_millis" : 175576,
"source" : {
"repository" : "my_repository",
"snapshot" : "my_snapshot",
"index" : "index1",
"version" : "{version}",
"restoreUUID": "PDh1ZAOaRbiGIVtCvZOMww"
},
"target" : {
"id" : "ryqJ5lO5S4-lSFbGntkEkg",
"host" : "my.fqdn",
"transport_address" : "my.fqdn",
"ip" : "10.0.1.7",
"name" : "my_es_node"
},
"index" : {
"size" : {
"total" : "75.4mb",
"total_in_bytes" : 79063092,
"reused" : "0b",
"reused_in_bytes" : 0,
"recovered" : "65.7mb",
"recovered_in_bytes" : 68891939,
"recovered_from_snapshot" : "0b",
"recovered_from_snapshot_in_bytes" : 0,
"percent" : "87.1%"
},
"files" : {
"total" : 73,
"reused" : 0,
"recovered" : 69,
"percent" : "94.5%"
},
"total_time" : "0s",
"total_time_in_millis" : 0,
"source_throttle_time" : "0s",
"source_throttle_time_in_millis" : 0,
"target_throttle_time" : "0s",
"target_throttle_time_in_millis" : 0
},
"translog" : {
"recovered" : 0,
"total" : 0,
"percent" : "100.0%",
"total_on_start" : 0,
"total_time" : "0s",
"total_time_in_millis" : 0
},
"verify_index" : {
"check_index_time" : "0s",
"check_index_time_in_millis" : 0,
"total_time" : "0s",
"total_time_in_millis" : 0
}
} ]
}
} Этот ответ содержит информацию об одном индексе, восстанавливающем один фрагмент. Источник восстановления — хранилище снимков, а целевой узел восстановления — my_es_node узел.
Ответ также включает количество и процент восстановленных файлов и байтов.
Получение подробной информации о восстановлении
Чтобы получить список физических файлов при восстановлении, установите параметр запроса detailed в значение true.
GET _recovery?human&detailed=true
API возвращает следующий ответ:
{
"index1" : {
"shards" : [ {
"id" : 0,
"type" : "STORE",
"stage" : "DONE",
"primary" : true,
"start_time" : "2014-02-24T12:38:06.349",
"start_time_in_millis" : "1393245486349",
"stop_time" : "2014-02-24T12:38:08.464",
"stop_time_in_millis" : "1393245488464",
"total_time" : "2.1s",
"total_time_in_millis" : 2115,
"source" : {
"id" : "RGMdRc-yQWWKIBM4DGvwqQ",
"host" : "my.fqdn",
"transport_address" : "my.fqdn",
"ip" : "10.0.1.7",
"name" : "my_es_node"
},
"target" : {
"id" : "RGMdRc-yQWWKIBM4DGvwqQ",
"host" : "my.fqdn",
"transport_address" : "my.fqdn",
"ip" : "10.0.1.7",
"name" : "my_es_node"
},
"index" : {
"size" : {
"total" : "24.7mb",
"total_in_bytes" : 26001617,
"reused" : "24.7mb",
"reused_in_bytes" : 26001617,
"recovered" : "0b",
"recovered_in_bytes" : 0,
"recovered_from_snapshot" : "0b",
"recovered_from_snapshot_in_bytes" : 0,
"percent" : "100.0%"
},
"files" : {
"total" : 26,
"reused" : 26,
"recovered" : 0,
"percent" : "100.0%",
"details" : [ {
"name" : "segments.gen",
"length" : 20,
"recovered" : 20
}, {
"name" : "_0.cfs",
"length" : 135306,
"recovered" : 135306,
"recovered_from_snapshot": 0
}, {
"name" : "segments_2",
"length" : 251,
"recovered" : 251,
"recovered_from_snapshot": 0
}
]
},
"total_time" : "2ms",
"total_time_in_millis" : 2,
"source_throttle_time" : "0s",
"source_throttle_time_in_millis" : 0,
"target_throttle_time" : "0s",
"target_throttle_time_in_millis" : 0
},
"translog" : {
"recovered" : 71,
"total" : 0,
"percent" : "100.0%",
"total_on_start" : 0,
"total_time" : "2.0s",
"total_time_in_millis" : 2025
},
"verify_index" : {
"check_index_time" : 0,
"check_index_time_in_millis" : 0,
"total_time" : "88ms",
"total_time_in_millis" : 88
}
} ]
}
} Ответ включает список восстановленных физических файлов и их размеры.
Ответ также включает временные характеристики в миллисекундах различных этапов восстановления:
- Получение индекса
- Воспроизведение журнала транзакций
- Время запуска индекса
Этот ответ указывает, что восстановление done. Все восстановления, текущие или завершенные, хранятся в состоянии кластера и могут быть отображены в любое время.
Чтобы вернуть только информацию о текущих восстановлениях, установите параметр запроса active_only в значение true.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/indices-recovery.html