Я экспериментирую с 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 узла с копией данных в каждом, хотя и с большим хранилищем данных, которое, очевидно, могло бы занять намного больше места.