Мені потрібно перейменувати декілька індексів у кластері (їх ім’я потрібно змінити, я не можу використовувати псевдоніми ).
Я бачив, що не існує підтримуваних способів зробити це, найближче, що я знайшов, це перейменувати каталог індексу , я спробував це в кластері.
Кластер має 3 машини A
, B
і C
на кожній з них копії реплікуються. Я вимкнув еластичний пошук A
, перейменував /var/lib/elasticsearch/security/nodes/0/indices/oldindexname
його /var/lib/elasticsearch/security/nodes/0/indices/newindexname
і перезапустив A
.
Стан кластера був жовтим, і еластичний дослід робив певну магію для відновлення правильного стану. Через деякий час я закінчив
oldindexname
бути доступним і повністю тиражуватися (відновлено з,B
іC
я думаю)newindexname
доступний (я можу його шукати), але головний плагін показує, що його осколки перебувають у стані "Непризначений" і що вони є сірим кольором (не копіюються)
Під час відновлення security.log
показано таке повідомлення:
[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
Хоча newindexname
це пошук, він, звичайно, не знаходиться в нормальному стані.
Я повернувся до попереднього стану, видаливши newindexname
. Кластер повертається до зеленого кольору без будь-яких записів "Непризначені".
З огляду на , що, як я можу перейменувати , oldindexname
щоб newindexname
в кластері?
Примітка: остаточне рішення , яке я маю на увазі , щоб сувою копію oldindex
в newindex
і видалити oldindex
згодом. Це займе час, тому якщо є більш пряме рішення, було б чудово.