# Восстановление снапшотов без snap-snapshot\*.dat фалов

**URL:** <https://discuss.elastic.co/t/snap-snapshot-dat/237598>\
**Category:** Вопросы на русском языке\
**Created:** [June 18, 2020, 8:40am UTC](https://discuss.elastic.co/t/snap-snapshot-dat/237598 "2020-06-18T08:40:22Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mrevilfromhell](https://avatars.discourse-cdn.com/v4/letter/m/3bc359/32.png) [@mrevilfromhell](https://discuss.elastic.co/u/mrevilfromhell)\
**Post date:** [June 18, 2020, 8:40am UTC](https://discuss.elastic.co/t/snap-snapshot-dat/237598/1 "2020-06-18T08:40:23Z")

</div>

На elasticsearch версии 2.4 были созданы снапшоты индексов. Добавлены в архив файлы из папки indices/name-index и meta-name-index.dat. Файл snap-snapshot-index-name.dat добавлен не был.

Возможно ли восстановить снапшот без файла snap-snapshot-index-name.dat? Или же отредактировать похожий файл у другого индекса, чтобы был годен для восстановления снапшота?

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [June 18, 2020, 3:57pm UTC](https://discuss.elastic.co/t/snap-snapshot-dat/237598/2 "2020-06-18T15:57:43Z")

</div>

На сколько я помню, в версии 2.4 файла snap-snapshot-index-name.dat не было. Структура в 2.4 примерно такая:

```auto
my_backup
├── index
├── indices
│ └── index_name
│ ├── 0
│ │ ├── __?????
│ │ ├── __?????
│ │ ├── __?????
│ │ ├── index-?
│ │ └── snap-snapshot_name.dat
│ ├── 1
│ │ ....
│ ├── 2
│ │ ....
│ ├── 3
│ │ ....
│ ├── 4
│ │ ....
│ └── meta-snapshot_name.dat
├── meta-snapshot_name.dat
└── snap-snapshot_name.dat

```

Какой файл не был добавлен? `snap-snapshot_name.dat` на уровней шард?

---

<div class="post-metadata">

**Author:** ![mrevilfromhell](https://avatars.discourse-cdn.com/v4/letter/m/3bc359/32.png) [@mrevilfromhell](https://discuss.elastic.co/u/mrevilfromhell)\
**Post date:** [June 19, 2020, 3:43am UTC](https://discuss.elastic.co/t/snap-snapshot-dat/237598/3 "2020-06-19T03:43:56Z")

</div>

Вы правы. Я ошибся. В вашем примере структуры директории - интересует последний файл - snap-snapshot\_name.dat (который идет после meta-snapshot\_name.dat). Этот файл был удален, а все все остальное - нет. Возможно ли восстановление снапшота без этого файла?

P.S.  
Сам снапшот тоже был удален из эластика командой:  
`DELETE /_snapshot/my_backup/snapshot-name`

В итоге, структура архива такая:

```auto
my_backup
├── indices
│ └── index_name
│ ├── 0
│ │ ├── __?????
│ │ ├── __?????
│ │ ├── __?????
│ │ ├── index-?
│ │ └── snap-snapshot_name.dat
│ ├── 1
│ │ ....
│ ├── 2
│ │ ....
│ └── meta-snapshot_name.dat
├── meta-snapshot_name.dat

```

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [June 19, 2020, 11:32am UTC](https://discuss.elastic.co/t/snap-snapshot-dat/237598/4 "2020-06-19T11:32:35Z")

</div>

Восстановить снапшот без этого файла напрямую нельзя. Но, теоретически, если очень нужно, то этот файл можно воссоздать, так как он, по сути, никакой особо ценной информации не содержит. Все что в нем содержится - это имя снапшота, список индексов, состояние снапшота и всякая статистика. Статистика для восстановления - не нужна, имя снапшота и индекса - вы знаете. Проблема только в воссоздании файла в нужном формате. Проще всего, наверное, будет сделать новый кластер из одного узла с версией 2.4, создать в этом кластере нужный индекс, сделать файловый снапшот с этим индексом с тем-же именем снапшота, и перенести этот файл в архив. Думаю, что это должно сгенерировать совместимый э.datэ файл.

Тут вот, что еще надо учесть. Вы знаете, почему этот файл не был добавлен? Это была ошибка пользователя или этого файла в репозитории не было. В 2.4 была такая проблема, что если в процессе удаления снапшота возникали какие-нибудь ошибки, то репозиторий мог остаться в таком состоянии, что `snap-snapshot_name.dat` отуствовал, когда как некоторые другие файлы все еще оставались. Если это ваша ситуация, то полное восстановление может не произойти, даже если вы восстановите `snap-snapshot_name.dat`, как я показал выше.

---

<div class="post-metadata">

**Author:** ![mrevilfromhell](https://avatars.discourse-cdn.com/v4/letter/m/3bc359/32.png) [@mrevilfromhell](https://discuss.elastic.co/u/mrevilfromhell)\
**Post date:** [June 20, 2020, 11:53am UTC](https://discuss.elastic.co/t/snap-snapshot-dat/237598/5 "2020-06-20T11:53:09Z")

</div>

`Вы знаете, почему этот файл не был добавлен?`  
Знаю. Это моя ошибка. Файл не был добавлен по невнимательности и заметил это позже.

Без этого файла в версии 2.4 - восстановить снапшот не получается. Я создал другой индекс, создал его снапшот (файл `snap-snapshot_name.dat` появился при создании снапшота) и попробовал восстановить на другом эластике с версией 2.4 без файла `snap-snapshot_name.dat` - не получилось. Если же добавить данный файл - восстановление происходит удачно.

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

---

<div class="post-metadata">

**Author:** ![mrevilfromhell](https://avatars.discourse-cdn.com/v4/letter/m/3bc359/32.png) [@mrevilfromhell](https://discuss.elastic.co/u/mrevilfromhell)\
**Post date:** [June 24, 2020, 8:45am UTC](https://discuss.elastic.co/t/snap-snapshot-dat/237598/6 "2020-06-24T08:45:15Z")

</div>

Ваш способ помог восстановить снапшот. Спасибо.

1. на другом кластере эластика (копии) были созданы индексы, что входили в снапшот, сделанные в оригинальном кластере
2. был сделан снапшот индексов на кластере-копии
3. из снапшота-копии забрал только `snap-snapshot_name.dat` файл и добавил его к снапшоту, что был сделан на оригинальном кластере
4. на кластере копии удалил созданные индексы, удалил снапшот
5. скопировал оригинальный снапшот (с файлом `snap-snapshot_name.dat` из снапшота копии) и попытался восстановить - удачно.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 22, 2020, 8:45am UTC](https://discuss.elastic.co/t/snap-snapshot-dat/237598/7 "2020-07-22T08:45:17Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
