Облачная платформаAdvanced

Включение корзины индексов

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

По умолчанию, когда индексы удаляются в кластере Elasticsearch, данные индекса удаляются безвозвратно. Чтобы предотвратить потерю данных из‑за случайного удаления, CSS предоставляет корзину индексов. При включении удалённые индексы временно сохраняются в корзине, что позволяет восстановить их до окончательного удаления. Эта функция повышает надёжность данных и операционную безопасность.

Как работает функция

Рисунок 1 Как работает корзина индексов


Корзина индексов предотвращает постоянную потерю данных, вызванную случайным удалением индекса. Как показано на Figure 1, при включённой корзине индексов:

  • При удалении индекса его статус меняется на Closed, и закрытый индекс перемещается в корзину. Это может привести к кратковременному переходу статуса кластера в Red. Этот статус указывает на наличие нераспределённых шардов в кластере, но не влияет на доступность сервиса.
  • Удалённые индексы хранятся в корзине в течение заданного периода. По истечении этого периода удержания удалённый индекс и его данные удаляются из корзины и тем самым удаляются безвозвратно. Вы также можете вручную удалить их из корзины в любой момент, что также является окончательным удалением.
  • Чтобы восстановить удалённый индекс, выберите его в корзине и нажмите Restore. Индекс снова переходит в состояние Open, а его шарды переинициализируются. Этот процесс также может привести к временному переходу статуса кластера в Red.

Ограничения

  • Только Elasticsearch 7.10.2 поддерживает корзину индексов.
  • Индексы в корзине остаются частью метаданных кластера. Поэтому нельзя создавать индексы с тем же именем, что и индексы в корзине.

Вход в Kibana

Войдите в Kibana и перейдите на страницу выполнения команд. Кластеры Elasticsearch поддерживают несколько методов доступа. В этом разделе в качестве примера используется Kibana для описания процедур операций.

  1. Войдите в консоль управления CSS.
  2. В панели навигации слева выберите Clusters > Elasticsearch.
  3. В списке кластеров найдите целевой кластер и нажмите Kibana в столбце Operation, чтобы войти в консоль Kibana.
  4. В левой панели навигации выберите Dev Tools.

    Левая часть консоли представляет собой поле ввода команды, а треугольный значок в её правом верхнем углу является кнопкой выполнения. Правая часть отображает результат выполнения.

Включение Index Recycle Bin

  1. Выполните следующую команду, чтобы включить index recycle bin:
    PUT _cluster/settings
    {
    "persistent": {
    "index.trash.enabled": true
    }
    }
    Table 1 Параметры включения index recycle bin

    Параметр

    Тип

    Значение по умолчанию

    Описание

    index.trash.enabled

    Boolean

    false

    Определяет, включена ли index recycle bin. Когда index recycle bin включена, удаление индексов сначала перемещает их в корзину. Индексы будут окончательно удалены только после очистки из корзины.

    Значение может быть:

    • true: Включить корзину индексов.
    • false: Отключить корзину индексов.

    indices.trash.keep.time

    String

    1d

    Период хранения индекса в корзине. Истёкшие индексы удаляются навсегда с помощью запланированной задачи удаления.

    Формат значения: число + единица измерения

    • Число: натуральное число
    • Единица: nanos (наносекунда), micros (микросекунда), ms (миллисекунда), s (секунда), m (минута), h (час), или d (день)

    Минимальное значение: 1d

    indices.trash.clean.interval

    String

    5m

    Интервал очистки корзины. Система запускает периодическую задачу очистки для окончательного удаления истёкших индексов в корзине.

    Формат значения: число + единица измерения

    • Number: натуральное число
    • Единица: nanos (nanosecond), micros (microsecond), ms (millisecond), s (second), m (minute), h (hour), или d (day)

    Минимальное значение: 5m

  2. Чтобы вручную удалить указанные индексы из корзины индексов сразу, вместо ожидания их периодического удаления, выполните следующую команду:
    DELETE {index_name}
    Table 2 Описание параметра

    Параметр

    Тип

    Значение по умолчанию

    Описание

    index_name

    String

    N/A

    Указывает один или несколько индексов.

    • Один индекс: Введите имя индекса, например, my_index.
    • Несколько индексов: Введите несколько имен индексов и используйте запятую (,) для их разделения, например, my_index1,my_index2.
    • Подстановочный символ: Используйте подстановочный символ (*) для сопоставления нескольких индексов. Например, myindex* указывает на все индексы, имя которых начинается с myindex.

Просмотр индексов в Recycle Bin

Выполните следующую команду, чтобы просмотреть индексы в index recycle bin и подтвердить статус индекса:

GET _cat/trash?v=true&s=index
Table 3 Параметры запроса

Параметр

Тип

Значение по умолчанию

Описание

v

Boolean

false

Указывает, будет ли у возвращаемой таблицы заголовок.

Значение может быть:

  • true: отображать заголовок таблицы.
  • false: не отображать заголовок таблицы.

s

String

N/A

Поле сортировки индексов.

Значение может быть:

  • index: Сортирует индексы по имени индекса.
  • uuid: Сортирует индексы по UUID индекса.
  • pri: Сортирует индексы по количеству первичных шардов.
  • rep: Сортирует индексы по количеству реплик шардов.
  • trash.ts: Сортирует индексы по метке времени перемещения в корзину.
  • delete.time: Сортирует индексы по оставшемуся сроку хранения в корзине.

format

String

Не указано (табличный формат)

Формат возвращаемого результата.

Диапазон значений: json (text), yaml (text), cbor (binary) или smile (binary)

Если ни один из этих четырёх форматов не указан, результат будет возвращён в виде таблицы.

h

String

Не указано (все)

Имена столбцов, которые будут отображаться в возвращаемой таблице.

Если вы хотите отобразить только некоторые столбцы, укажите их имена и разделите их запятыми (,), например, h=index,uuid,delete.time.

Ниже приведён пример вывода.

index uuid pri rep trash.ts delete.time
index1 CMD3FCLzTOyTg4RUekWNNA 1 1 1714465116615 23.6h
index1 6ATijuu6SfqamVI-WMyOKg 1 1 1714466233898 23.9h
Note

Когда delete.time становится 0, индекс будет удалён навсегда.

Восстановление индекса из Recycle Bin

  1. Выполните следующую команду для восстановления индекса из recycle bin:
    POST /trash/recover/{index_name}
  2. Выполните следующую команду для запроса списка индексов и проверки, был ли индекс успешно восстановлен:
    GET _cat/indices?v=true

Очистка Recycle Bin

Warning

Очистка recycle bin безвозвратно удаляет её данные. Перед этим убедитесь, что важные данные были сохранены в резервной копии.

  1. Выполните следующую команду для очистки recycle bin:
    POST trash/empty
  2. Выполните следующую команду, чтобы подтвердить, что корзина была очищена:
    GET _cat/trash?v=true&s=index