বর্তমানে উপলব্ধ বেশিরভাগ ডাটাবেস মাইগ্রেশন টুল অফলাইন প্রকৃতির। এগুলি জটিল এবং ম্যানুয়াল হস্তক্ষেপ প্রয়োজন।
আপনি যদি আপনার ডেটা Amazon ElastiCache থেকে Redis Enterprise ক্লাউডে স্থানান্তর করতে চান, উদাহরণস্বরূপ, স্বাভাবিক প্রক্রিয়া হল আপনার ElastiCache ডেটা একটি Amazon S3 বাকেটে ব্যাক আপ করা এবং তারপর Redis Enterprise Cloud UI ব্যবহার করে আপনার ডেটা আমদানি করা৷ এই প্রক্রিয়াটি বেদনাদায়ক ডাউনটাইম প্রয়োজন হতে পারে এবং এর ফলে ডেটা ক্ষতি হতে পারে। অন্যান্য উপলব্ধ কৌশলগুলির মধ্যে রয়েছে সোর্স রেডিস সার্ভারের পয়েন্ট-ইন-টাইম স্ন্যাপশট তৈরি করা এবং উভয় সার্ভারকে সিঙ্কে রাখতে গন্তব্য সার্ভারে পরিবর্তনগুলি প্রয়োগ করা। এটি একটি ভাল পদ্ধতির মত শোনাতে পারে, তবে এটি চ্যালেঞ্জিং হতে পারে যখন আপনাকে মাইগ্রেশন কৌশল বাস্তবায়নের জন্য কয়েক ডজন স্ক্রিপ্ট বজায় রাখতে হবে।
তাই আমরা একটি ভিন্ন পদ্ধতি নিয়ে এসেছি:
পরিচয় RIOT ৷
RIOT হল একটি ওপেন সোর্স অনলাইন মাইগ্রেশন টুল যা Redis-এর একজন সলিউশন আর্কিটেক্ট Julien Ruaux দ্বারা নির্মিত৷ RIOT একটি প্রযোজক/ভোক্তা পদ্ধতি ব্যবহার করে ক্লায়েন্ট-সাইড প্রতিলিপি প্রয়োগ করে। প্রযোজক হল কী এবং মান পাঠকদের সমন্বয় যা ইলাস্টিক্যাশের সাথে একটি সংযোগ রয়েছে। মূল পাঠক উপাদান স্ক্যান এবং কীস্পেস বিজ্ঞপ্তিগুলি ব্যবহার করে প্রতিলিপি করা কীগুলি সনাক্ত করে। প্রতিটি কী-এর জন্য, ভ্যালু রিডার কম্পোনেন্ট একটি DUMP সঞ্চালন করে এবং ভোক্তার (লেখক) কাছে ফলাফল কী+বাইটগুলি পরিচালনা করে, যা Redis এন্টারপ্রাইজ সংযোগে একটি পুনরুদ্ধার করে।
এই ব্লগ পোস্টটি দেখাবে কিভাবে ইলাস্টিক্যাচে থেকে রেডিস এন্টারপ্রাইজ ক্লাউডে ডেটাবেসগুলির একটি বিরামহীন অনলাইন স্থানান্তর করতে হয়৷
মিস করবেন না:একটি DBaaS প্রদানকারী বেছে নেওয়ার সময় বিবেচনা করার জন্য 6 মূল বৈশিষ্ট্যগুলি এবং কিভাবে রেডিস এন্টারপ্রাইজ ক্লাউড AWS-এ পরিপক্ক এন্টারপ্রাইজ গ্রাহকদের চাহিদা পূরণ করে
পূর্বশর্ত:
মাইগ্রেশন টুল ব্যবহার করার জন্য আপনার কিছু সম্পদের প্রয়োজন হবে:
- একটি রেডিস এন্টারপ্রাইজ ক্লাউড সাবস্ক্রিপশন
- Amazon ElastiCache (একক-মাস্টার EC-এর ক্ষেত্রে একটি প্রাথমিক এন্ডপয়েন্ট এবং একটি ক্লাস্টারড EC-এর ক্ষেত্রে একটি কনফিগারেশন এন্ডপয়েন্ট:আরও জানতে ইলাস্টিক্যাচে ডকুমেন্টেশনে সংযোগের শেষ পয়েন্ট খুঁজে দেখুন)
- লিনাক্সের উপর ভিত্তি করে একটি Amazon EC2 উদাহরণ
Amazon EC2 ইন্সট্যান্স সেট আপ করা হচ্ছে
আপনি হয় একটি নতুন EC2 দৃষ্টান্ত তৈরি করতে পারেন বা একটি বিদ্যমান একটি লিভারেজ করতে পারেন৷ আমাদের উদাহরণে, আমরা প্রথমে Amazon Web Services (AWS) এ একটি উদাহরণ তৈরি করব। সবচেয়ে সাধারণ দৃশ্য হল একই অ্যামাজন ভার্চুয়াল প্রাইভেট ক্লাউড (অ্যামাজন ভিপিসি) এ অ্যামাজন EC2 ইন্সট্যান্স থেকে একটি ইলাস্টিক্যাচে ক্লাস্টার অ্যাক্সেস করা। আমরা এই সেটআপের জন্য Ubuntu 16.04 LTS ব্যবহার করেছি, কিন্তু আপনি আপনার পছন্দের উবুন্টু বা ডেবিয়ান ডিস্ট্রিবিউশন বেছে নিতে পারেন।
এখানে দেখানো হিসাবে আপনার কম্পিউটার থেকে এই নতুন EC2 দৃষ্টান্তের সাথে সংযোগ করতে SSH ব্যবহার করুন:
ssh -i “public key” <AWS EC2 Instance>
এই কমান্ডটি চালিয়ে এই নতুন উদাহরণে redis-cli টুলটি ইনস্টল করুন:
$ 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
নিশ্চিত করুন যে উপরের কমান্ডটি আপনাকে রিমোট রেডিস ডাটাবেসের সাথে সফলভাবে সংযোগ করতে দেয়।
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
একবার Java এবং RIOT ইনস্টল হয়ে গেলে, আমরা নীচের কমান্ডের মাধ্যমে মাইগ্রেশন প্রক্রিয়া শুরু করতে প্রস্তুত, যা সরাসরি উৎস (ElastiCache) থেকে লক্ষ্যে (Redis Enterprise Cloud) ডেটা প্রতিলিপি করে।
অবশেষে, নীচের কমান্ডটি চালিয়ে ইলাস্টিক্যাচে থেকে রেডিস এন্টারপ্রাইজ ক্লাউডে ডেটা প্রতিলিপি করার সময় এসেছে:
sudo ./riot-redis -r redis://<source Elasticache endpoint>:6379 replicate -r redis://password@<Redis Enterprise Cloud endpoint>:port --live
ElastiCache আপনাকে দুটি উপায়ে কনফিগার করতে দেয়:ক্লাস্টারড এবং নন-ক্লাস্টারড। নীচের চার্টে, প্রথম সারিটি দেখায় যে নন-ক্লাস্টারড দৃশ্যের জন্য আপনাকে কোন কমান্ডগুলি সম্পাদন করতে হবে, যখন দ্বিতীয় সারিটি একটি নির্দিষ্ট ডাটাবেস নেমস্পেস সহ ক্লাস্টারযুক্ত দৃশ্যের জন্য কমান্ড দেখায়:
আপনি দেখতে পাচ্ছেন, যখনই আপনার কাছে একটি ক্লাস্টারড ইলাস্টিক্যাচে থাকবে, আপনাকে উৎস ইলাস্টিক্যাচে এন্ডপয়েন্ট উল্লেখ করার আগে –ক্লাস্টার বিকল্পটি পাস করতে হবে৷
গুরুত্বপূর্ণ নোট
- উৎপাদনে ব্যবহার করার আগে মাইগ্রেশনের ব্যবহারকারীর গ্রহণযোগ্যতা পরীক্ষা করুন।
- একবার মাইগ্রেশন সম্পূর্ণ হলে, নিশ্চিত করুন যে অ্যাপ্লিকেশন ট্র্যাফিক সফলভাবে Redis Enterprise এন্ডপয়েন্টে পুনঃনির্দেশিত হয়েছে।
- ডেটা হারানোর সম্ভাবনা কমাতে কম ট্রাফিকের সময় মাইগ্রেশন প্রক্রিয়াটি সম্পাদন করুন।
উপসংহার
আপনি যদি একটি সহজ এবং সহজেই ব্যবহারযোগ্য লাইভ মাইগ্রেশন টুল খুঁজছেন যা আপনাকে Amazon ElastiCache থেকে রেডিস এন্টারপ্রাইজ ক্লাউডে ডাউনটাইম ছাড়াই ডেটা স্থানান্তর করতে সাহায্য করতে পারে, RIOT হল একটি প্রতিশ্রুতিশীল বিকল্প৷
রেফারেন্স:
- RIOT – রিডিস ইনপুট/আউটপুট টুলস