আমাকে একটি ক্লাস্টারে বেশ কয়েকটি সূচকের নাম পরিবর্তন করতে হবে (তাদের নাম অবশ্যই পরিবর্তন করতে হবে, আমি ডাকনাম ব্যবহার করতে পারি না )।
আমি দেখেছি যে এটি করার জন্য কোনও সমর্থিত উপায় নেই, আমি যে নিকটতমটি পেয়েছি সেটি হল সূচকের ডিরেক্টরিটির নাম পরিবর্তন করা , আমি এটি একটি ক্লাস্টারে চেষ্টা করেছি।
ক্লাস্টার 3 মেশিন হয়েছে A
, B
এবং C
এবং shards তাদের প্রতিটি নেভিগেশন প্রতিলিপি করা হয়। আমি স্থিতিস্থাপক অনুসন্ধানটি বন্ধ করে দিয়েছি 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
তারপরে মুছে ফেলা । এটি সময় নিতে চলেছে তাই যদি আরও সরাসরি সমাধান হয় তবে তা দুর্দান্ত।