आज उपलब्ध अधिकांश डेटाबेस माइग्रेशन टूल प्रकृति में ऑफ़लाइन हैं। वे जटिल हैं और मैन्युअल हस्तक्षेप की आवश्यकता है।
यदि आप अपने डेटा को Amazon ElastiCache से Redis Enterprise Cloud में माइग्रेट करना चाहते हैं, उदाहरण के लिए, सामान्य प्रक्रिया यह है कि आप अपने ElastiCache डेटा को Amazon S3 बकेट में बैकअप लें और फिर Redis Enterprise Cloud UI का उपयोग करके अपना डेटा आयात करें। इस प्रक्रिया में दर्दनाक डाउनटाइम की आवश्यकता हो सकती है और इसके परिणामस्वरूप डेटा हानि हो सकती है। अन्य उपलब्ध तकनीकों में स्रोत रेडिस सर्वर के पॉइंट-इन-टाइम स्नैपशॉट बनाना और दोनों सर्वरों को सिंक में रखने के लिए गंतव्य सर्वर में परिवर्तन लागू करना शामिल है। यह एक अच्छे दृष्टिकोण की तरह लग सकता है, लेकिन यह चुनौतीपूर्ण हो सकता है जब आपको माइग्रेशन रणनीति को लागू करने के लिए दर्जनों लिपियों को बनाए रखना होगा।
इसलिए हम एक अलग तरीका लेकर आए हैं:
पेश है दंगा
RIOT एक ओपन सोर्स ऑनलाइन माइग्रेशन टूल है, जिसे रेडिस के सॉल्यूशन आर्किटेक्ट जूलियन रूक्स द्वारा बनाया गया है। RIOT एक निर्माता/उपभोक्ता दृष्टिकोण का उपयोग करके क्लाइंट-साइड प्रतिकृति को लागू करता है। निर्माता कुंजी और मूल्य पाठकों का संयोजन है जिनका इलास्टी कैश से संबंध है। मुख्य पाठक घटक स्कैन और कीस्पेस सूचनाओं का उपयोग करके दोहराई जाने वाली कुंजियों की पहचान करता है। प्रत्येक कुंजी के लिए, मूल्य पाठक घटक एक डंप करता है और परिणामी कुंजी + बाइट्स को उपभोक्ता (लेखक) को संभालता है, जो रेडिस एंटरप्राइज कनेक्शन पर एक RESTORE करता है।
यह ब्लॉग पोस्ट दिखाएगा कि इलास्टी कैश से रेडिस एंटरप्राइज क्लाउड में डेटाबेस का एक सहज ऑनलाइन माइग्रेशन कैसे किया जाता है।
छोड़ें नहीं: 6 प्रमुख विशेषताएं जिन्हें DBaaS प्रदाता चुनते समय ध्यान में रखा जाना चाहिए और Redis Enterprise Cloud AWS पर परिपक्व होने वाले एंटरप्राइज़ ग्राहकों की ज़रूरतों को कैसे पूरा करता है
आवश्यकताएं:
माइग्रेशन टूल का उपयोग करने के लिए आपको कुछ संसाधनों की आवश्यकता होगी:
- एक रेडिस एंटरप्राइज क्लाउड सदस्यता
- Amazon ElastiCache (एकल मास्टर ईसी के मामले में एक प्राथमिक एंडपॉइंट और क्लस्टर ईसी के मामले में एक कॉन्फ़िगरेशन एंडपॉइंट:अधिक जानने के लिए ElastiCache दस्तावेज़ पर कनेक्शन एंडपॉइंट ढूँढना देखें)
- लिनक्स पर आधारित Amazon EC2 इंस्टेंस
Amazon EC2 इंस्टेंस सेट करना
आप या तो एक नया EC2 इंस्टेंस बना सकते हैं या किसी मौजूदा इंस्टेंस का लाभ उठा सकते हैं। हमारे उदाहरण में, हम पहले Amazon Web Services (AWS) पर एक उदाहरण बनाएंगे। सबसे आम परिदृश्य एक ही अमेज़ॅन वर्चुअल प्राइवेट क्लाउड (अमेज़ॅन वीपीसी) में अमेज़ॅन ईसी 2 इंस्टेंस से इलास्टी कैश क्लस्टर तक पहुंचना है। हमने इस सेटअप के लिए उबंटू 16.04 एलटीएस का उपयोग किया है, लेकिन आप अपनी पसंद का उबंटू या डेबियन वितरण चुन सकते हैं।
अपने कंप्यूटर से इस नए EC2 इंस्टेंस से कनेक्ट करने के लिए SSH का उपयोग करें जैसा कि यहां दिखाया गया है:
ssh -i “public key” <AWS EC2 Instance>
इस कमांड को चलाकर इस नए इंस्टेंस पर रेडिस-क्ली टूल इंस्टॉल करें:
$ sudo apt update # sudo apt install -y redis-tools
ElastiCache डेटाबेस के साथ कनेक्टिविटी को सत्यापित करने के लिए redis-cli का उपयोग करना
वाक्यविन्यास:
$ redis-cli -h <Elasticache Primary Endpoint > -p 6379
कमांड:
$ sudo redis-cli -h <elasticache primary endpoint> -p 6379
सुनिश्चित करें कि उपरोक्त आदेश आपको दूरस्थ Redis डेटाबेस से सफलतापूर्वक कनेक्ट करने की अनुमति देता है।
RIOT माइग्रेशन टूल का उपयोग करना
माइग्रेशन टूल सेट करने के लिए नीचे दिए गए कमांड चलाएँ।
आवश्यकताएं:
जावा स्थापित करें:हमने OpenJDK 11 या बाद के संस्करण का उपयोग करने की अनुशंसा की:
sudo add-apt-repository ppa:openjdk-r/ppa && sudo apt-get update -q && sudo apt install -y openjdk-11-jdk
RIOT इंस्टॉल करना
पैकेज को अनज़िप करें और सुनिश्चित करें कि RIOT बायनेरिज़ जगह में हैं, जैसा कि यहाँ दिखाया गया है:
wget https://github.com/Redislabs-Solution-Architects/riot/releases/download/v2.0.8/riot-redis-2.0.8.zip unzip riot-redis-2.0.8.zip cd riot-redis-2.0.8/bin/
आप नीचे दिए गए आदेश को चलाकर RIOT के संस्करण की जांच कर सकते हैं:
./riot-redis --version RIOT version "2.0.8" bin/riot-redis --help Usage: riot-redis [OPTIONS] [COMMAND] -q, --quiet Log errors only -d, --debug Log in debug mode (includes normal stacktrace) -i, --info Set log level to info -h, --help Show this help message and exit. -V, --version Print version information and exit. Redis connection options -r, --redis=<uri> Redis connection string (default: redis://localhost:6379) -c, --cluster Connect to a Redis Cluster -m, --metrics Show metrics -p, --pool=<int> Max pool connections (default: 8) Commands: replicate, r Replicate a source Redis database in a target Redis database info, i Display INFO command output latency, l Calculate latency stats ping, p Execute PING command
एक बार जावा और आरआईओटी स्थापित हो जाने के बाद, हम नीचे दिए गए कमांड के साथ माइग्रेशन प्रक्रिया शुरू करने के लिए पूरी तरह तैयार हैं, जो डेटा को सीधे स्रोत (इलास्टी कैश) से लक्ष्य (रेडिस एंटरप्राइज क्लाउड) में दोहराता है।
अंत में, नीचे दिए गए आदेश को चलाकर इलास्टी कैश से डेटा को रेडिस एंटरप्राइज क्लाउड में दोहराने का समय आ गया है:
sudo ./riot-redis -r redis://<source Elasticache endpoint>:6379 replicate -r redis://password@<Redis Enterprise Cloud endpoint>:port --live
ElastiCache आपको दो तरह से कॉन्फ़िगर करने की अनुमति देता है:क्लस्टर्ड और गैर-क्लस्टर। नीचे दिए गए चार्ट में, पहली पंक्ति दिखाती है कि गैर-संकुल परिदृश्य के लिए आपको कौन से आदेश निष्पादित करने चाहिए, जबकि दूसरी पंक्ति विशिष्ट डेटाबेस नामस्थान के साथ संकुल परिदृश्य के लिए आदेश दिखाती है:
जैसा कि आप देख सकते हैं, जब भी आपके पास एक संकुल ElastiCache होता है, तो आपको स्रोत ElastiCache समापन बिंदु निर्दिष्ट करने से पहले –cluster विकल्प को पास करना होगा।
महत्वपूर्ण नोट
- उत्पादन में उपयोग करने से पहले माइग्रेशन का उपयोगकर्ता स्वीकृति परीक्षण करें।
- एक बार माइग्रेशन पूरा हो जाने के बाद, सुनिश्चित करें कि एप्लिकेशन ट्रैफ़िक सफलतापूर्वक Redis Enterprise समापन बिंदु पर पुनर्निर्देशित हो जाता है।
- डेटा हानि की संभावना को कम करने के लिए कम ट्रैफ़िक की अवधि के दौरान माइग्रेशन प्रक्रिया निष्पादित करें।
निष्कर्ष
यदि आप एक सरल और उपयोग में आसान लाइव माइग्रेशन टूल की तलाश में हैं जो बिना डाउनटाइम के Amazon ElastiCache से Redis Enterprise Cloud में डेटा स्थानांतरित करने में आपकी सहायता कर सकता है, RIOT एक आशाजनक विकल्प है।
संदर्भ:
- RIOT - रेडिस इनपुट/आउटपुट टूल