Ich muss mehrere Indizes in einem Cluster umbenennen (ihr Name muss geändert werden, ich kann keine Aliase verwenden ).
Ich habe gesehen, dass es keine unterstützten Möglichkeiten gibt, dies zu tun. Das nächste, was ich gefunden habe, ist das Umbenennen des Indexverzeichnisses . Ich habe dies in einem Cluster versucht.
Der Cluster verfügt über 3 Computer A
, B
und C
die Shards werden auf jedem von ihnen repliziert. Ich heruntergefahren Elasticsearch auf A
, umbenannt /var/lib/elasticsearch/security/nodes/0/indices/oldindexname
zu /var/lib/elasticsearch/security/nodes/0/indices/newindexname
und neu gestartet A
.
Der Status des Clusters war gelb und Elasticsearch hat etwas Magie angewendet, um einen korrekten Status wiederherzustellen. Nach einiger Zeit endete ich mit
oldindexname
verfügbar und vollständig repliziert sein (wiederhergestellt vonB
undC
ich denke)newindexname
verfügbar sein (ich kann es durchsuchen), aber das Head-Plugin zeigt an, dass sich die Shards in einem "Nicht zugewiesenen" Zustand befinden und dass sie ausgegraut sind (nicht repliziert)
Während der Wiederherstellung wurde security.log
die folgende Meldung angezeigt:
[2015-02-20 11:02:33,461][INFO ][gateway.local.state.meta ] [A.example.com] dangled index directory name is [newindexname], state name is [oldindexname], renaming to directory name
Während newindexname
es durchsuchbar ist, ist es sicherlich nicht in einem normalen Zustand.
Ich habe durch Löschen den vorherigen Status wiederhergestellt newindexname
. Der Cluster ist ohne "Nicht zugewiesene" Einträge wieder grün.
Da, wie kann ich umbenennen oldindexname
zu newindexname
in einem Cluster?
Hinweis: die ultimative Lösung , die ich im Sinne habe , ist zu Scroll-Kopie oldindex
in newindex
und löscht oldindex
danach. Dies wird einige Zeit in Anspruch nehmen. Wenn es also eine direktere Lösung gibt, wäre dies großartig.