J'ai besoin de renommer plusieurs index dans un cluster (leur nom doit être changé, je ne peux pas utiliser d' alias ).
J'ai vu qu'il n'y avait pas de moyens pris en charge pour le faire, le plus proche que j'ai trouvé est de renommer le répertoire de l'index , j'ai essayé cela dans un cluster.
Le groupe dispose de 3 machines A, Bet Cet les tessons sont répliquées sur chacun d'eux. J'ARRÊTER ElasticSearch sur A, renommé /var/lib/elasticsearch/security/nodes/0/indices/oldindexnamepour /var/lib/elasticsearch/security/nodes/0/indices/newindexnameet redémarré A.
L'état du cluster était jaune et elasticsearch faisait de la magie pour restaurer un état correct. Après un certain temps, je me suis retrouvé avec
oldindexnameêtre disponible et entièrement répliqué (récupéré deBetCje suppose)newindexnameétant disponible (je peux le rechercher) mais le plugin head montre que ses fragments sont dans un état "Non attribué" et qu'ils sont grisés (non répliqués)
Pendant la récupération, security.logle message suivant a été affiché:
[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
Bien qu'il newindexnamesoit consultable, il n'est certainement pas dans un état normal.
Je suis revenu à l'état précédent en supprimant newindexname. Le cluster est revenu au vert sans aucune entrée «Non attribué».
Étant donné que, comment puis - je renommer oldindexnameà newindexnameun cluster?
Remarque: la solution ultime je pense est de défilement copie oldindexdans newindexet supprimer par la oldindexsuite. Cela va prendre du temps, donc s'il y a une solution plus directe, ce serait formidable.