# Как востановить данные индекса из каталога, который не видит Эластик?

**URL:** https://discuss.elastic.co/t/topic/109557
**Category:** Вопросы на русском языке
**Created:** [November 29, 2017, 9:57am UTC](https://discuss.elastic.co/t/topic/109557 "2017-11-29T09:57:24Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![MichaelAA](https://avatars.discourse-cdn.com/v4/letter/m/0ea827/32.png) [@MichaelAA](https://discuss.elastic.co/u/MichaelAA)
#### Post date: [November 29, 2017, 9:57am UTC](https://discuss.elastic.co/t/topic/109557/1 "2017-11-29T09:57:24Z")

</div>

Добрый день!

Есть ли возможность достать данные после подобной ситуации:

Данные записывались в index1  
Был тестовый index2  
В один момент был удален index2, и создан заново с новым mapping и в него закачали данные из index1 и все новые данные стали писаться в index2  
В какой-то момент потребовалась перезагрузка машины, в момент перезагрузки вторая машина из кластера стала мастером и после перезагрузки машины вдруг index2 стал старым (до того как его удалили и создали заново и залили новые данные).

Можно как-то откатить изменения которые сделал кластер когда одна машина была выключена и потом включилась?

Или восстановить данные из каталога индекса?  
На диске в каталоге /var/lib/elasticsearch/nodes/0/indices/ есть каталог с данными, который эластик не видит.  
Видит все остальные индексы, а вот нужный не видит.  
Что нужно сделать чтобы этот каталог Эластик увидел как индекс?

---

<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: [November 30, 2017, 1:39pm UTC](https://discuss.elastic.co/t/topic/109557/3 "2017-11-30T13:39:19Z")

</div>

Я не понимаю, что у Вас произошло. Что в логах на мастере и на другой ноде? По идеи, когда elasticsearch находит индекс на диске, то он его автоматически подцепляет. Как установка `path.data` настроена на этих нодах?

---

<div class="post-metadata">

### Author: ![MichaelAA](https://avatars.discourse-cdn.com/v4/letter/m/0ea827/32.png) [@MichaelAA](https://discuss.elastic.co/u/MichaelAA)
#### Post date: [November 30, 2017, 2:59pm UTC](https://discuss.elastic.co/t/topic/109557/4 "2017-11-30T14:59:14Z")

</div>

Было два сервера в кластере.  
На мастере удалили index2 (uuid: AAAA) и создали его заново (uuid BBBB) с новым маппингом и загрузили в него данные.  
(была странность с местом: сначала оставалось 7% свободного места, а потом раз и 30% стало)  
И эти данные видать не синхронизировались со вторым сервером (на нем остался старый вариант index2 (uuid AAAA).  
Мастер выключили. Второй сервер стал мастером. Первый сервер включили, он подключился к кластеру и со второго сервера закачал index2 (uuid AAAA)

В каталоге с данными оказалось два каталога (с разными UUID: AAAA и BBBB, у которых одинаковое название индекса index2). Эластик видит "старый" index2 (uuid AAAA)  
Ошибка писалась вот такая:  
can not be imported as a dangling index, as index with same name already exists in cluster metadata

Пробовал удалить index2 (uuid AAAA)  
Папка (uuid BBBB) не подцепилась

Единственно, что еще не пробовал - это перегрузить еще раз эластик.

На данный момент каталог с нужными данными убрали из каталога с данными (/var/lib/elasticsearch/nodes/0/inidices/)

Вопрос: если я скопирую папку в обособленный эластик. Запущу его - он подцепит эту папку?

---

<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: [November 30, 2017, 3:20pm UTC](https://discuss.elastic.co/t/topic/109557/5 "2017-11-30T15:20:10Z")

</div>

> [@MichaelAA](#):
>
> Вопрос: если я скопирую папку в обособленный эластик. Запущу его - он подцепит эту папку?

Да, это должно сработать. После того, как индекс подцепиться, его данный можно будет переиндексировать в старый кластер.

---

<div class="post-metadata">

### Author: ![MichaelAA](https://avatars.discourse-cdn.com/v4/letter/m/0ea827/32.png) [@MichaelAA](https://discuss.elastic.co/u/MichaelAA)
#### Post date: [November 30, 2017, 4:08pm UTC](https://discuss.elastic.co/t/topic/109557/6 "2017-11-30T16:08:43Z")

</div>

Спасибо.  
Попробую.  
О результате расскажу.

---

<div class="post-metadata">

### Author: ![MichaelAA](https://avatars.discourse-cdn.com/v4/letter/m/0ea827/32.png) [@MichaelAA](https://discuss.elastic.co/u/MichaelAA)
#### Post date: [December 1, 2017, 11:55am UTC](https://discuss.elastic.co/t/topic/109557/7 "2017-12-01T11:55:58Z")

</div>

Не помогло  
В папке \_state не оказалось файла state\*.st и при запуске Эластик выдает вот такую ошибку  
no index state found  
и игнорирует папку с данными

---

<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: [December 1, 2017, 4:20pm UTC](https://discuss.elastic.co/t/topic/109557/8 "2017-12-01T16:20:07Z")

</div>

Если другой индекс имеет такой-же меппинг и установки, то можно скопировать этот файл из другого индекса.

---

<div class="post-metadata">

### Author: ![MichaelAA](https://avatars.discourse-cdn.com/v4/letter/m/0ea827/32.png) [@MichaelAA](https://discuss.elastic.co/u/MichaelAA)
#### Post date: [December 5, 2017, 10:20am UTC](https://discuss.elastic.co/t/topic/109557/9 "2017-12-05T10:20:34Z")

</div>

Попробовал скопировать только каталоги \_state  
ругался на отсутствие traslog/...ckp

Скопировал этот файл с индекса с таким же маппингом и стало ругаться вот так:  
[2017-12-05T13:17:38,463][WARN][o.e.c.a.s.ShardStateAction] [ZKcktVG] [testindex][0] received shard failed for shard id [[testindex][0]], allocation id [NMty1uqXSTu4\_E-YfYfIrA], primary term [0], message [failed recovery], failure [RecoveryFailedException[[testindex][0]: Recovery failed on {ZKcktVG}{ZKcktVGAS2qLeSS\_V5dNNA}{RcxrzUiHS\_yZPijMc0M-Fg}{127.0.0.1}{127.0.0.1:9300}]; nested: IndexShardRecoveryException[failed to recover from gateway]; nested: EngineCreationFailureException[failed to create engine]; nested: TranslogCorruptedException[expected shard UUID [78 76 45 45 6d 58 36 6e 52 41 79 6e 4c 55 36 76 43 4d 71 48 59 51] but got: [45 34 35 64 76 4a 42 31 53 34 47 6b 47 77 43 65 66 78 5f 61 32 77] this translog file belongs to a different translog. path:/var/lib/elasticsearch/nodes/0/indices/ujx\_TJvxTteiCIjIiP1yKg/0/translog/translog-1.tlog]; ]  
org.elasticsearch.indices.recovery.RecoveryFailedException: [testindex][0]: Recovery failed on {ZKcktVG}{ZKcktVGAS2qLeSS\_V5dNNA}{RcxrzUiHS\_yZPijMc0M-Fg}{127.0.0.1}{127.0.0.1:9300}  
at org.elasticsearch.index.shard.IndexShard.lambda$startRecovery$5(IndexShard.java:2004) ~[elasticsearch-6.0.0.jar:6.0.0]  
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:569) [elasticsearch-6.0.0.jar:6.0.0]  
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0\_151]  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0\_151]  
at java.lang.Thread.run(Unknown Source) [?:1.8.0\_151]  
Caused by: org.elasticsearch.index.shard.IndexShardRecoveryException: failed to recover from gateway  
at org.elasticsearch.index.shard.StoreRecovery.internalRecoverFromStore(StoreRecovery.java:396) ~[elasticsearch-6.0.0.jar:6.0.0]  
at org.elasticsearch.index.shard.StoreRecovery.lambda$recoverFromStore$0(StoreRecovery.java:93) ~[elasticsearch-6.0.0.jar:6.0.0]  
at org.elasticsearch.index.shard.StoreRecovery.executeRecovery(StoreRecovery.java:286) ~[elasticsearch-6.0.0.jar:6.0.0]  
at org.elasticsearch.index.shard.StoreRecovery.recoverFromStore(StoreRecovery.java:91) ~[elasticsearch-6.0.0.jar:6.0.0]  
at org.elasticsearch.index.shard.IndexShard.recoverFromStore(IndexShard.java:1542) ~[elasticsearch-6.0.0.jar:6.0.0]  
at org.elasticsearch.index.shard.IndexShard.lambda$startRecovery$5(IndexShard.java:2000) ~[elasticsearch-6.0.0.jar:6.0.0]

---

<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: [December 6, 2017, 1:46pm UTC](https://discuss.elastic.co/t/topic/109557/10 "2017-12-06T13:46:21Z")

</div>

Можно попробовать [почистить translog](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-translog.html) с помощью `elasticsearch-translog`.

---

<div class="post-metadata">

### Author: ![MichaelAA](https://avatars.discourse-cdn.com/v4/letter/m/0ea827/32.png) [@MichaelAA](https://discuss.elastic.co/u/MichaelAA)
#### Post date: [December 6, 2017, 4:45pm UTC](https://discuss.elastic.co/t/topic/109557/11 "2017-12-06T16:45:22Z")

</div>

Иван, спасибо огромное!  
Чистка транслога помогла. Не весь индекс восстановился, но нужные данные восстановились.  
Спасибо!

---

<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: [January 3, 2018, 4:45pm UTC](https://discuss.elastic.co/t/topic/109557/12 "2018-01-03T16:45:53Z")

</div>

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