Przywracanie Elasticsearch 7 po awarii zasilania
Przetłumaczone automatycznie z angielskiego. Przeczytaj oryginał
Jeśli doszło do awarii zasilania albo po prostu bezmyślnie wcisnąłeś przycisk restartu na swojej maszynie, istnieje duża szansa, że pojawią się problemy z klastrem. Mój ma tylko jeden węzeł, więc nie ma redundancji. Jeśli stracę indeksy, dane przepadną. Na szczęście uruchomienie Elasticsearch i czerwone wskaźniki niekoniecznie oznaczają utratę danych. Niedawno przeszedłem tę ścieżkę. Log mówił, że brakuje primary shardów. W takim przypadku trzeba sprawdzić, czy te indeksy są wylistowane:
curl -s 'localhost:9200/_cat/indices?v'W wyniku tego polecenia szukaj czerwonych statusów. Wewnętrzne mechanizmy mają regułę opóźnienia, więc co minutę sprawdzaj, czy liczba maleje. Jeśli nie, zamiast „indices” wpisz „allocations” i możesz zobaczyć nieprzypisane indeksy. Teraz możesz spróbować tego:
url -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{
"transient" : {
"cluster.routing.allocation.enable" : "all"
}
}
'Być może przywróci to alokację. Innym czynnikiem awarii może być mało wolnego miejsca. Trzeba utrzymywać je powyżej 15%. Jeśli masz więcej niż jeden węzeł, sprawdź, czy jest dostępny i działa.