В кластерах Elasticsearch индексы удаляются без предварительного помещения в корзину рециклинга. Чтобы пользователи могли восстановить данные после ошибочного удаления, CSS предоставляет корзину рециклинга индексов. Как и другие корзины рециклинга, корзина рециклинга индексов временно хранит удалённые индексы, чтобы пользователи могли восстановить их до окончательного удаления из корзины рециклинга. Это помогает повысить надёжность данных кластера.
Ограничения
- Только кластеры Elasticsearch 7.10.2 поддерживают корзину рециклинга индексов.
- При включённой корзине рециклинга индексов после использования DELETE API для перемещения индекса в корзину рециклинга статус кластера может оставаться RED в течение короткого периода времени. Это происходит потому, что помещение индекса в корзину рециклинга приводит к его закрытию, и статус кластера Elasticsearch становится RED, когда есть закрытые индексы.
- Когда используется API восстановления для восстановления индекса из корзины рециклинга, статус кластера также может оставаться RED в течение короткого периода времени. Это происходит потому, что восстановление индекса из корзины рециклинга приводит к его повторному открытию, и в этот момент Elasticsearch необходимо переинициализировать шарды. Это приводит к кратковременному переходу статуса кластера в RED.
- Индексы, хранящиеся в корзине, по‑прежнему являются частью метаданных кластера. Пока они не удалены из корзины, индексы с тем же именем нельзя создать для кластера.
Включение корзины индексов
Выполните следующую команду, чтобы включить корзину индексов:
PUT _cluster/settings{"persistent": {"index.trash.enabled": true}}
Элемент конфигурации | Описание |
|---|---|
index.trash.enabled | Включить ли корзину индексов. Значение по умолчанию — false. Этот параметр совместим с открытой версией Elasticsearch. Установка этого параметра в true включает корзину индексов. После удаления индекса, индекс сохраняется в корзине. Нужно удалить индекс ещё раз, чтобы окончательно удалить данные индекса. |
indices.trash.keep.time | Продолжительность сохранения индексов в корзине. Значение по умолчанию — 1d, meaning индексы будут сохраняться в корзине в течение одного дня, прежде чем они будут безвозвратно удалены. Минимальное значение равно 1d. |
Следующая команда удаляет индекс:
DELETE {INDEX_NAME}
INDEX_NAME указывает имя индекса, подлежащего удалению. Подстановочные знаки могут использоваться для указания индексов.
Просмотр индексов в корзине
Выполните следующую команду, чтобы просмотреть индексы в корзине индексов:
GET _cat/trash?v=true&s=index
Параметр | Описание |
|---|---|
v | Отображать ли заголовок таблицы, когда формат возврата — таблица.
Значение по умолчанию равно false. |
s | Поля сортировки индекса. Параметры включают индекс, uuid, pri, rep, trash.ts, и delete.time. |
формат | Формат возврата команды. Формат по умолчанию — table. Другие варианты включают json, yaml, cobr и smile. cobr и smile — бинарные форматы. |
h | Установите имена столбцов для отображения. По умолчанию отображаются все имена столбцов. Чтобы указать имена столбцов, которые требуется отобразить, разделите их запятыми (,), например, h=index,uuid,delete.time. |
Следующий пример вывода.
index uuid pri rep trash.ts delete.timeindex1 CMD3FCLzTOyTg4RUekWNNA 1 1 1714465116615 23.6hindex1 6ATijuu6SfqamVI-WMyOKg 1 1 1714466233898 23.9h
Столбец | Описание |
|---|---|
индекс | Имя индекса |
uuid | UUID индекса |
pri | Количество шардов индекса |
rep | Количество реплик индекса |
trash.ts | Время, когда индекс был перемещён в корзину |
delete.time | Оставшаяся длительность удержания индекса в корзине. Когда значение изменяется на 0, индекс удаляется без возможности восстановления. |
Восстановление индекса из корзины
Выполните следующую команду для восстановления индекса из корзины:
POST /trash/recover/{INDEX_NAME}
INDEX_NAME указывает имя индекса, который нужно восстановить. Можно использовать подстановочные знаки для указания индексов.
Очистка корзины
Выполните следующую команду для очистки корзины:
POST trash/empty
Очистка корзины приведёт к безвозвратному удалению всех данных в ней. Пожалуйста, будьте осторожны.