Saya perlu mengganti nama beberapa indeks dalam sebuah cluster (nama mereka harus diubah, saya tidak dapat menggunakan alias ).
Saya melihat bahwa tidak ada cara yang didukung untuk melakukan itu, yang paling dekat yang saya temukan adalah mengganti nama direktori indeks , saya mencoba ini di cluster.
Kluster memiliki 3 mesin A, Bdan Cpecahannya direplikasi pada masing-masing mesin. Aku menutup elasticsearch pada A, nama /var/lib/elasticsearch/security/nodes/0/indices/oldindexnameuntuk /var/lib/elasticsearch/security/nodes/0/indices/newindexnamedan restart A.
Status cluster berwarna kuning dan elasticsearch melakukan sihir untuk memulihkan status yang benar. Setelah beberapa waktu saya berakhir dengan
oldindexnametersedia dan direplikasi sepenuhnya (dipulihkan dariBdanCsaya kira)newindexnamesedang tersedia (saya dapat mencarinya) tetapi plugin head menunjukkan bahwa shard-nya berada dalam status "Belum ditetapkan" dan berwarna abu-abu (tidak direplikasi)
Selama pemulihan security.logmenunjukkan pesan berikut:
[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
Meskipun newindexnamedapat dicari, ini tentu tidak dalam keadaan normal.
Saya memutar kembali ke keadaan sebelumnya dengan menghapus newindexname. Cluster kembali menjadi hijau tanpa entri "Belum ditetapkan".
Mengingat itu, bagaimana saya bisa mengganti nama oldindexnamemenjadi newindexnamedalam sebuah cluster?
Catatan: solusi pamungkas yang ada dalam pikiran saya adalah menggulir-salin oldindexke newindexdan menghapus oldindexsesudahnya. Ini akan memakan waktu, jadi jika ada solusi yang lebih langsung, itu akan bagus.