नमस्ते! हमारे पास आपके साथ साझा करने के लिए कुछ बेहतरीन समाचार हैं Manticore के बैकअप टूल के बारे में जिसे हमने हाल ही में Manticore Search 6 के हिस्से के रूप में जारी किया है। यदि आप ऐसे व्यक्ति हैं जो अपने डेटा को महत्व देते हैं और इसकी सुरक्षा सुनिश्चित करना चाहते हैं, तो यह निश्चित रूप से कुछ ऐसा है जिस पर आपको ध्यान देना चाहिए।
यह टूल आपके Manticore डेटा का बैकअप लेने के मामले में गेम-चेंजर है। आपको अब सिस्टम क्रैश या अन्य अप्रत्याशित घटनाओं के कारण महत्वपूर्ण जानकारी खोने की चिंता करने की आवश्यकता नहीं है। नए टूल के साथ, आप इसे अपने क्रॉन जॉब में जोड़कर बैकअप प्रक्रिया को आसानी से स्वचालित कर सकते हैं। इसका मतलब है कि आप पीछे बैठ सकते हैं और विश्राम कर सकते हैं यह जानते हुए कि आपका डेटा सुरक्षित है।
इतिहास
अतीत में, आपके डेटा को सुरक्षित रखना एक कठिन कार्य था जिसमें मैनुअल बैकअप की आवश्यकता होती थी जो अक्सर समय लेने वाले और त्रुटियों के प्रति संवेदनशील थे। चलिए याद करते हैं कि यह कितना चुनौतीपूर्ण था।
Manticore Search दो प्रकार की तालिकाओं का समर्थन करता है: RT
(वास्तविक समय) और plain
। जबकि दोनों अलग-अलग उद्देश्यों की सेवा करते हैं, यह ध्यान रखना महत्वपूर्ण है कि प्लेन टेबल का बैकअप लेना अपेक्षाकृत आसान है, जबकि RT टेबल को एक अधिक सूक्ष्म दृष्टिकोण की आवश्यकता होती है।
RT तालिकाओं का बैकअप
आप शायद लंबे समय से Manticore Search डेटा के RT तालिकाओं का बैकअप लेने के लिए संघर्ष कर रहे होंगे, कोई विश्वसनीय उपकरण न होने के कारण प्रक्रिया को सुचारु बनाने के लिए। यदि आप जिज्ञासु हैं, तो मुझे आपको याद दिलाने दीजिए कि मैनुअल बैकअप प्रक्रिया में क्या शामिल था:
- सबसे पहले, Manticore Search को बंद करना महत्वपूर्ण था और सुनिश्चित करना था कि सभी डेटा ठीक से फ्लश हो गया है और प्रोग्राम सही ढंग से समाप्त हो गया है।
- फिर, आपको Manticore कॉन्फ़िगरेशन का संदर्भ लेकर
data_dir
/path
फ़ोल्डरों को ढूंढना था और उससे सभी डेटा की कॉपी करना था। यह सुनिश्चित करता है कि सभी डेटा को सेव किया गया है और यदि आवश्यक हो तो पुनर्स्थापित किया जा सकता है। यह ध्यान रखना महत्वपूर्ण है कि जब बड़े मात्रा में डेटा का व्यवहार किया जा रहा हो, तो बैकअप प्रक्रिया में कुछ समय लग सकता है, जिससे दूसरी ओर तामसी हो सकती है। हालाँकि, यह कदम आपके डेटा की सुरक्षा और उपलब्धता सुनिश्चित करने के लिए आवश्यक है। - अंत में, आपको Manticore Search को पुनः लॉन्च करना था।
वैकल्पिक रूप से, आप set global maintenance=1
कर सकते थे और फिर बैकअप कर सकते थे या अपने ऐप को _readonly
लिसनर पर स्विच कर सकते थे और सुनिश्चित कर सकते थे कि कोई लिखाई रुकी हुई है।
प्लेन तालिकाओं का बैकअप
जब आप Manticore Search में प्लेन तालिकाएं का उपयोग करते हैं, तो डिस्क पर फ़ाइलें तब ही अपडेट होती हैं जब आप इंडेक्सर चलाते हैं या SQL क्वेरी के माध्यम से विशेषताओं को अपडेट करते हैं। यह सरल दृष्टिकोण आपके इंडेक्स का बैकअप लेना आसान बनाता है। जबकि यह एक कठिन कार्य नहीं है, फिर भी हमारे पास इसे बैकअप टूल में शामिल करने की योजनाएँ हैं। आप संबंधित issue की जांच करके अपडेट के लिए बने रह सकते हैं।
नया बैकअप टूल बैकअप करने के लिए एक बेहद आसान तरीका प्रदान करता है। इसके साथ, सब कुछ सुव्यवस्थित और सीधा है। आप नियमित बैकअप शेड्यूल भी कर सकते हैं, ताकि आपके पास हमेशा आपके डेटा का नवीनतम संस्करण हाथ में हो, बिना किसी डाउनटाइम या परेशानी के।
बैकअप टूल को विकसित करने की प्रक्रिया
उपकरण विकसित करने के लिए, हमें अपने मौजूदा Manticore सिस्टम में अतिरिक्त सुविधाएँ जोड़नी पड़ीं: FREEZE
और UNFREEZE
आदेश जो बैकअप प्रक्रिया के दौरान आपके डेटा की संगति सुनिश्चित करने में एक महत्वपूर्ण भूमिका निभाते हैं।
Manticore Search में FREEZE
और UNFREEZE
आदेश थोड़े अलग तरीके से काम करते हैं जो पारंपरिक तालिका लॉक और अनलॉक की विशेषता की तुलना में होते हैं MySQL। FREEZE
का उपयोग करते समय, यह डिस्क पर डेटा को फ्लश करना बंद कर देता है, लेकिन फिर भी तालिका में लिखने और उससे अपडेट किए गए डेटा को चुनने की अनुमति देता है। यह ध्यान रखना महत्वपूर्ण है कि यदि आपकी RAM भाग का आकार rt_mem_limit
सीमा से अधिक बढ़ जाता है जबकि कई इनसर्ट का बैकअप कार्य कर रहे हैं, तो इससे डेटा डिस्क पर फ्लश हो सकता है। तभी लिखने के संचालन को तब तक अवरुद्ध किया जाएगा जब तक फ्लशिंग पूरा न हो जाए। फिर भी, यह दृष्टिकोण तालिका को पूरी तरह से लॉक करने, डेटा की संगति बनाए रखने, और तालिका के ठंडा होने के दौरान डेटाबेस लिखने की उपलब्धता सुनिश्चित करने के बीच संतुलन बनाए रखता है।
ये सुविधाएँ एक विश्वसनीय ऑनलाइन बैकअप समाधान के लिए आवश्यक थीं। इनके बिना, आपके डेटा को पुनर्स्थापित करने से असंगत या टूटी हुई डेटा हो सकती थी, जिससे प्रमुख सिरदर्द और समय और संसाधनों की लागत होती थी। उचित बैकअप लॉजिक सुनिश्चित करने के लिए, हम सभी तालिकाओं को FREEZING करने से शुरू करते हैं। इसके बाद, हम एक-एक करके प्रत्येक तालिका का बैकअप लेना शुरू करते हैं और प्रत्येक बैकअप के बाद UNFREEZE
का कार्यान्वयन करते हैं। इसके अतिरिक्त, टूल में एक सुरक्षात्मक उपाय है जो प्रक्रिया विफल होने या उपयोगकर्ता द्वारा समाप्त किए जाने की स्थिति में सभी तालिकाओं के लिए UNFREEZE
को स्वचालित रूप से निष्पादित करता है।
यह सुनिश्चित करने के बाद कि हमारे पास सुरक्षित रूप से डेटा की कॉपी करने के लिए आवश्यक आदेश हैं, अगला प्रश्न उठता है - हमें टूल को लागू करने के लिए कौन सी प्रोग्रामिंग भाषा का उपयोग करना चाहिए? हमारी टीम ने पहले ही तय कर लिया था कि हम Manticore Buddy प्रोजेक्ट के लिए PHP का उपयोग करेंगे। इसलिए, डेटा बैकअप प्रक्रिया को PHP का उपयोग करके लागू करना हमारे लिए एक आसान निर्णय था:
- सबसे पहले, PHP में Bash की अपेक्षा अधिक लचीलापन प्रदान करता है, जो सामान्यतः समान उपकरणों के लिए उपयोग किया जाता है। यह हमारे प्रोजेक्ट की विशिष्ट आवश्यकताओं के लिए महत्वपूर्ण था। उदाहरण के लिए, यह विंडोज़ वातावरण में उपकरण का उपयोग करने की अनुमति देता है, जो Bash के साथ संभव नहीं होगा।
- दूसरे, और अधिक महत्वपूर्ण बात यह है कि, हमने इसे इस तरह से डिजाइन किया कि हम Manticore Buddy में समान स्तर की लचीलापन के साथ उसी कोड का पुनः उपयोग कर सकें।
बैकअप टूल को कुछ बाहरी मॉड्यूल की आवश्यकता होती है, जिसमें संपीड़न शामिल है। इसके उपयोग को सरल बनाने के लिए, हम PHP को स्थिर रूप से संकलित करते हैं और इसमें सभी विस्तार शामिल करते हैं। इस संयुक्त इकाई को manticore-executor
कहा जाता है। मूल रूप से, यह PHP के समान है लेकिन विभिन्न Manticore Search PHP परियोजनाओं को चलाने के लिए सब कुछ शामिल किया गया है: Manticore Buddy और बैकअप टूल। आप हमारे
Manticore Buddy के विकास की कहानी और वहां PHP का उपयोग कैसे किया गया,
को देख सकते हैं।
यह टूल का उपयोग केवल कमांड लाइन से ही नहीं बल्कि मैन्टिकोर के अंदर एक नए SQL कमांड के रूप में भी करना संभव बना दिया है, जो कि समान कोडबेस का उपयोग करता है।
अब, आइए सीखते हैं कि CLI और SQL इंटरफेस का उपयोग करके अपने डेटा का बैकअप कैसे लें!
manticore-backup - CLI स्वाद
नया बैकअप टूल Manticore 6 में जारी किया गया था, इसलिए यदि आप मैन्टिकोर स्थापना गाइड पृष्ठ का पालन करते हैं तो इसे स्थापित करना बहुत आसान है।
मान लेते हैं कि आपने सफलतापूर्वक बैकअप टूल स्थापित कर लिया है, तो आपके पास अब manticore-backup
निष्पादन योग्य फ़ाइल तक पहुँच होनी चाहिए। आइए वास्तविक जीवन के कुछ उदाहरणों पर नज़र डालते हैं कि आप अपने दैनिक कार्यों में टूल का उपयोग कैसे कर सकते हैं। शुरू करने के लिए, सुनिश्चित करें कि आपने सभी बैकअप को संग्रहीत करने के लिए एक /backup
फ़ोल्डर बनाया है। इस फ़ोल्डर का उपयोग सभी उदाहरणों में किया जाएगा जो यह दिखाते हैं कि टूल कैसे काम करता है, लेकिन बेशक, इसका होना बिल्कुल /backup
नहीं है, आप कोई भी पथ चुन सकते हैं।
- परिदृश्य 1: आप अपने पूरे मैन्टिकोर इंस्टेंस का बैकअप लेना चाहते हैं:
manticore-backup --config=/etc/manticore/manticore.conf --backup-dir=/backup
- परिदृश्य 2: आप केवल कुछ तालिकाओं का बैकअप लेना चाहते हैं:
manticore-backup --config=/etc/manticore/manticore.conf --backup-dir=/backup --tables=users,messages,products
याद रखें कि अपने डेटा का नियमित रूप से बैकअप लेना सुनिश्चित करें ताकि सब कुछ सुरक्षित रहे। इसके अलावा, यह सलाह दी जाती है कि इसे एक अलग सर्वर या डेटा सेंटर में मिरर करें ताकि सभी डेटा हमेशा उपलब्ध रहे।
टूल का उपयोग करने के लिए गहरे ज्ञान के लिए बैकअप सहायता अनुभाग की पड़ताल करें।
SQL BACKUP कमांड का उपयोग कैसे करें?
Manticore 6 आपको किसी भी चीज़ को स्थापित किए बिना या विशेष निर्देशों का पालन किए बिना SQL इंटरफेस का उपयोग करके बैकअप बनाने की भी अनुमति देता है। आप पिछले अनुभाग में चर्चा किए गए उसी दृष्टिकोण का उपयोग करके पूरे इंस्टेंस या विशिष्ट तालिकाओं का बैकअप ले सकते हैं।
- पूरे इंस्टेंस का बैकअप लेने के लिए, इस कमांड का उपयोग करें:
BACKUP TO /backup
- विशिष्ट तालिकाओं का बैकअप लेने के लिए, इसका उपयोग करें:
BACKUP TABLES users, messages, products TO /backup
याद रखें कि एक बड़ी मात्रा में डेटा का बैकअप लेने में समय लग सकता है। BACKUP कमांड चलाते समय मैन्टिकोर से कनेक्शन खोने की चिंता से बचने के लिए, आप क्वेरी को असिंक्रोनस रूप से निष्पादित कर सकते हैं। आपको तुरंत एक क्वेरी आईडी प्राप्त होगी और आप बाद में SHOW QUERIES
कमांड भेजकर बैकअप प्रक्रिया की स्थिति की जांच कर सकते हैं। यहाँ एक उदाहरण है:
BACKUP TO /backup OPTION async=1
यह इतना सरल है!
अब, आप सोच रहे होंगे, “बैकअप किए गए डेटा को पुनर्स्थापित करने के बारे में क्या?”
पुनर्स्थापना
हमने दो विभिन्न तरीकों से सफलतापूर्वक एक बैकअप बनाया है, यह सुनिश्चित करते हुए कि आपका डेटा सुरक्षित और सुरक्षित है। लेकिन आप अपने डेटा को कैसे पुनर्स्थापित करते हैं? चिंता न करें, हमने आपके लिए इसे कवर किया है।
इस समय, manticore-backup
केवल पूर्ण बैकअप को पुनर्स्थापित करने का समर्थन करता है जब मैन्टिकोर खोज डेमॉन बंद हो, लेकिन हमारे पास
योजनाएं
हैं कि हम व्यक्तिगत तालिकाओं की पुनर्स्थापना जोड़ें।
मान लेते हैं कि आपने अपने डेटा को /backup
पर बैकअप लिया और बैकअप टूल ने आपके सभी डेटा को backup-20230305121400
नामक फ़ोल्डर में बनाया और संग्रहीत किया। आपको अपने मैन्टिकोर खोज इंस्टेंस को रोकने, सभी डेटा और कॉन्फ़िगरेशन को हटाने और कमांड चलाने की आवश्यकता है:
manticore-backup --config=/etc/manticore/manticore.conf --backup-dir=/backup --restore=backup-20230305121400
यदि आप अभी भी एक विशिष्ट तालिका को पुनर्स्थापित करना चाहते हैं, तो आप SQL मोड में
IMPORT TABLE
का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आपके बैकअप में users
नाम की एक तालिका है, तो आपको बस इस तरह की एक क्वेरी भेजनी होगी:
IMPORT TABLE users FROM '/backup/backup-20230305121400/data/users'
आप manticore-backup --restore
के बारे में और जानकारी
यहाँ
और IMPORT
कमांड के बारे में
यहाँ
पा सकते हैं।
सारांश
प्रोडक्शन पर्यावरण में चीज़ें चलाने के मामले में, अपने डेटा का बैकअप लेना एक आवश्यक कार्य है। और अब, manticore-backup
और BACKUP
कमांड की मदद से, आप इसे आसानी से कर सकते हैं।
नए बैकअप टूल के साथ शुरू करने के लिए, हमारे डॉक्यूमेंटेशन पर जाएं। हमें विश्वास है कि आपको यह पसंद आएगा! यदि आपके पास कोई फीचर अनुरोध हैं, तो कृपया उन्हें GitHub मुद्दों के माध्यम से हमारे साथ साझा करें।
सादर, मैन्टिकोर टीम ❤️