Резервное копирование, удаление, восстановление индексов Elasticsearch по папкам индексов



В большинстве документов ElasticSearch обсуждается работа с индексами через REST API - есть ли причина, по которой я не могу просто переместить или удалить папки с индексами с диска?

739   2  

2 ответов:

Вы можете перемещать данные по диску, в точку -

Если Elasticsearch-это работает, это никогда не хорошая идея, чтобы переместить или удалить индекс папки, потому что Elasticsearch не будет знать, что случилось с данными, и вы получите все виды FileNotFoundExceptions в журналах, а также индексы они красные, пока вы не удалите их вручную.

Если Elasticsearch не запущен, можно переместить папки индекса на другой узел (для например, если вы постоянно выводили узел из эксплуатации и вам нужно было получить то данные выключены), однако, если удалить или переместить папку в место, где Elasticsearch не может увидеть его при перезапуске службы, а затем Elasticsearch будет недоволен. Это происходит потому, что Elasticsearch пишет то, что известно как состояние кластера на диск, и в этом состоянии кластера записываются индексы, так что если ES запускается и ожидает найти индекс "foo", но вы удалили "foo" каталог индекса, индекс будет оставаться в красном состоянии, пока он не будет удален через остальное-АПИ.

Потому что из этого я бы рекомендовал, если вы хотите переместить или удалить отдельные индексируйте папки с диска, чтобы вы использовали REST API, когда это возможно, так как это можно привести ES в неудовлетворительное состояние, если удалить папку, которую он ожидает чтобы найти индекс В.

EDIT: я должен упомянуть, что безопасно копировать (для резервных копий) папку indexes, с точки зрения Elasticsearch, поскольку он не изменяет содержимое папка. Иногда люди делают это, чтобы выполнить резервное копирование за пределами снимок & восстановить API.

Я использую следующую процедуру: я закрываю, резервную копию, а затем удаляю индексы.

curl -XPOST "http://127.0.0.1:9200/*index_name*/_close"

После этого момента все данные индекса находятся на диске и в согласованном состоянии, и никакая запись невозможна. Я копирую каталог, в котором хранится индекс, а затем удаляю его:

curl -XPOST "http://127.0.0.1:9200/*index_name*/_delete"

Закрывая индекс, elasticsearch останавливает весь доступ к индексу. Затем я посылаю команду на удаление индекса (и всех соответствующих файлов на диске).

Comments

    Ничего не найдено.