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, Bund Cdie Shards werden auf jedem von ihnen repliziert. Ich heruntergefahren Elasticsearch auf A, umbenannt /var/lib/elasticsearch/security/nodes/0/indices/oldindexnamezu /var/lib/elasticsearch/security/nodes/0/indices/newindexnameund 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
oldindexnameverfügbar und vollständig repliziert sein (wiederhergestellt vonBundCich denke)newindexnameverfü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.logdie 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 newindexnamees 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 oldindexnamezu newindexnamein einem Cluster?
Hinweis: die ultimative Lösung , die ich im Sinne habe , ist zu Scroll-Kopie oldindexin newindexund löscht oldindexdanach. Dies wird einige Zeit in Anspruch nehmen. Wenn es also eine direktere Lösung gibt, wäre dies großartig.