Назад | Перейти на главную страницу

Восстановление снимка Elasticsearch с помощью слияния

Я экспериментирую с Elasticsearch в отношении резервного копирования и восстановления данных.

Я могу без проблем скопировать данные в снимок с помощью куратора.

Затем я физически удаляю файлы, относящиеся к индексу (чтобы имитировать сбой HD и т. Д.)

Я перезапускаю Elasticsearch и проверяю в Kibana, что данных больше нет.

Если я затем перейду к восстановлению последнего сделанного мной снимка; любые данные, хранящиеся в Elasticsearch между этим последним снимком и моментом восстановления, теряются.

Восстановление моментального снимка, похоже, не объединяется с более новыми данными в индексах, и я не могу найти никаких ссылок на эту проблему в Интернете, но, конечно же, восстановление резервной копии не просто выбрасывает новые данные, и я должен что-то упустить?

Чтобы обобщить:

Образец моих снимков в каталоге резервного копирования:

snapshot-curator-20150830191221
snapshot-curator-20150901225612
snapshot-curator-20150902090327

которые были сгенерированы следующей командой:

curator snapshot --repository es_backup indices --all-indices

Затем я удаляю файлы для индекса за определенный день:

rm -rf /mnt/storage/var/lib/elasticsearch/elasticsearch/nodes/0/indices/logstash-production-media-2015.09.02

Перезапустите Elasticsearch (изначально я этого не делал, и данные всегда были там, кажется, что Java или машинный буфер удерживал данные, и Elasticsearch не осознал, что они исчезли!)

Убедитесь, что все данные о датах исчезли в Кибане.

Закройте все индексы:

curator close indices --all-indices

Восстановите последний снимок:

curl -XPOST http://localhost:9200/_snapshot/es_backup/curator-20150729133045/_restore

Удаленные данные возвращаются при просмотре в Kibana, но любые данные, помещенные в elasticsearch между моментальным снимком и временем восстановления, ушли.

например Последний снимок сделан в 10 утра. Восстановить в 13:00. Данные с 10:00 до 13:00 после восстановления пропадают.

Так что я делаю не так? Как выполнить восстановление с объединением текущих новых данных, которые хранились в Elasticsearch с момента создания предыдущего снимка?

Спасибо!

К сожалению, слияние невозможно.

Ответ на вопрос, который я также разместил на форуме ES, когда я не получил здесь никаких ответов:

https://discuss.elastic.co/t/restore-from-backup-and-merge-with-newer-data/28760

Снимок - это копия данных на определенный момент времени. Когда вы восстанавливаете, вы восстанавливаете вещи на тот момент времени.

В настоящее время нет возможности такого слияния.

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

Возможно, решение состоит в том, чтобы иметь 2 узла с копией данных в каждом, хотя и с большим хранилищем данных, которое, очевидно, могло бы занять намного больше места.