[Elasticsearch]: невозможно восстановить первичный осколок - PullRequest
0 голосов
/ 03 февраля 2020

Я использую версию Elasticsearch 2.3.5. Я должен восстановить полные данные с резервных дисков. Все было восстановлено, кроме 2 осколков. При проверке журналов я обнаружил следующую ошибку:

ОШИБКА:

Caused by: java.nio.file.NoSuchFileException: /data/<cluster_name>/nodes/0/indices/index_name/shard_no/index/_c4_49.liv
        at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
        at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
        at sun.nio.fs.UnixFileSystemProvider.newFileChannel(UnixFileSystemProvider.java:177)
        at java.nio.channels.FileChannel.open(FileChannel.java:287)
        at java.nio.channels.FileChannel.open(FileChannel.java:335)
        at org.apache.lucene.store.NIOFSDirectory.openInput(NIOFSDirectory.java:81)
        at org.apache.lucene.store.FileSwitchDirectory.openInput(FileSwitchDirectory.java:186)
        at org.apache.lucene.store.FilterDirectory.openInput(FilterDirectory.java:89)
        at org.apache.lucene.store.FilterDirectory.openInput(FilterDirectory.java:89)
        at org.apache.lucene.store.Directory.openChecksumInput(Directory.java:109)
        at org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormat.readLiveDocs(Lucene50LiveDocsFormat.java:83)
        at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:73)
        at org.apache.lucene.index.ReadersAndUpdates.getReader(ReadersAndUpdates.java:145)
        at org.apache.lucene.index.ReadersAndUpdates.getReadOnlyClone(ReadersAndUpdates.java:197)
        at org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:99)
        at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:435)
        at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:100)
        at org.elasticsearch.index.engine.InternalEngine.createSearcherManager(InternalEngine.java:283)
        ... 12 more

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

Заранее спасибо

1 Ответ

0 голосов
/ 04 февраля 2020

К сожалению, восстановление Elasticsearch из резервной копии файловой системы не является надежным способом восстановления ваших данных и, как ожидается, иногда приводит к сбою. Вы должны всегда использовать снимок и восстанавливать вместо этого. Ваша версия довольно старая, но более поздние версии включают это предупреждение в документы (что также относится к вашей версии):

ПРЕДУПРЕЖДЕНИЕ : вы не можете создайте резервную копию кластера Elasticsearch, просто скопировав каталоги данных всех его узлов. Elasticsearch может вносить изменения в содержимое своих каталогов данных во время работы; нельзя ожидать, что копирование каталогов данных позволит получить непротиворечивую картину их содержимого. Если вы попытаетесь восстановить кластер из такой резервной копии, он может дать сбой и сообщить о повреждении и / или отсутствующих файлах. С другой стороны, он может показаться успешным, хотя он молча потерял некоторые из своих данных. Единственный надежный способ создания резервной копии кластера - использование функции моментальных снимков и восстановления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...