ভূমিকা
মূলত ৬ ফেব্রুয়ারি, ২০২০ को ObjectRocket.com/blog-এ প্রকাশিত।
ডেটাবেস অ্যাডমিনিস্ট্রেশনের দায়িত্বে নিয়মিত ব্যাকআপ নেওয়া এবং রিস্টোর করা অন্তর্ভুক্ত, যা একটি গুরুত্বপূর্ণ উপাদান। ObjectRocket সব ডেটাবেস প্রোডাক্টে ডিফল্টরূপে দৈনিক ব্যাকআপ সক্ষম করে এবং দুই সপ্তাহ ধরে রিটেনশন সহ ব্যাকআপ অন্তর্ভুক্ত করে।
ObjectRocket PostgreSQL® (Postgres) অফারিং একটি বোনাস যোগ করে: Write Ahead Log (WAL) আর্কাইভিং এবং রিটেনশন উইন্ডোর মধ্যে যেকোনো সময়ে রিস্টোর করার ক্ষমতা।
এই পোস্টটি ObjectRocket সার্ভিসে Postgres-এ পয়েন্ট-ইন-টাইম রিকভারি (PITR) এর মাধ্যমে আপনাকে গাইড করবে।
ঝামেলামুক্ত ব্যাকআপ
ব্যাকআপ প্রক্রিয়াটি সম্পূর্ণ অটোমেটেড, এবং আপনাকে কিছু করতে হয় না। আমরা সব ইনস্ট্যান্সের খরচে দৈনিক ব্যাকআপ অন্তর্ভুক্ত করি, এবং সবসময় দুই সপ্তাহের ব্যাকআপ রিটেইন করি। আপনি আমাদের ড্যাশবোর্ড বা ইউজার ইন্টারফেস (UI) ব্যবহার করে আপনার ব্যাকআপ সময় এবং পূর্বের স্ট্যাটাস দেখতে পারেন, নিচের ছবিতে দেখানো হয়েছে:
বহুযোগ্য রিস্টোর অপশন
যখন আপনি একটি পরিস্থিতি মোকাবিলা করতে চান এবং একটি ব্যাকআপ রিস্টোর করতে চান, তবে আমরা অনেক অপশন অফার করি। আপনি নিচের পয়েন্ট থেকে রিস্টোর করতে পারেন:
- আমরা যা সংরক্ষণ করেছি সেটির মধ্যে সবচেয়ে সাম্প্রতিক WAL আপডেট
- একটি নির্দিষ্ট বেস ব্যাকআপ
- একটি নির্দিষ্ট পয়েন্ট ইন টাইম
সব ক্ষেত্রে, সিস্টেম আপনার ডেটাকে একটি নতুন Postgres ইনস্ট্যান্সে রিস্টোর করে। এই সময়ে, ইনস্ট্যান্স স্টোরেজ অবশ্যই মূল ইনস্ট্যান্সের স্টোরেজের চেয়ে বড় বা সমান হতে হবে। এই প্রক্রিয়ায়, যাকে কখনও ডেটাবেস ফর্ক বলা হয়, আপনি আপনার ডেটাকে একটি নতুন এবং পৃথক ডেটাবেস ইনস্ট্যান্সে রিস্টোর করুন। তাই পুরানো এবং নতুন উভয় ইনস্ট্যান্স সক্রিয় থাকে যতক্ষণ না আপনি একটি সরিয়ে ফেলেন।
বর্তমানে রিস্টোর শুধুমাত্র আমাদের API দ্বারা এক্সপোজ করা হয়েছে। এই API ব্যবহার করতে পারেন। অন্যথায়, আমাদের সাপোর্ট টিম প্রক্রিয়াটি সম্পন্ন করতে সাহায্য করতে খুশি হবে। আমরা निकট ভবিষ্যতে UI-তে রিস্টোর যোগ করার পরিকল্পনা করছি।
সর্বশেষ সময়ে রিস্টোর করুন
এই উদাহরণটি একটি সাধারণ ডেটাবেস ব্যবহার করে যা প্রতিটি মিনিটে একটি টাইমস্ট্যাম্প এবং একটি সিকোয়েন্স সংরক্ষণ করে যাতে আমরা দেখতে পাই যে আমরা কোন পয়েন্টে রিস্টোর করেছি।
নিচের ছবিতে ডেটাবেসটি দেখানো হয়েছে, এবং আপনি দেখতে পাবেন যে শেষ টাইমস্ট্যাম্প ছিল 16:00:58 (UTC)।
এই ডেটাবেসে সর্বশেষ ডেটাতে রিস্টোর করতে, সোর্স ইনস্ট্যান্সের ইনস্ট্যান্স আইডি একটি নতুন ইনস্ট্যান্স ক্রিয়েট কলের জন্য প্রদান করুন, নিচের ছবিতে দেখানো হয়েছে:
ইনস্ট্যান্স রিস্টোর সম্পন্ন হলে, কানেক্ট করুন এবং শেষ টাইমস্ট্যাম্প চেক করুন।
আপনি দেখতে পাচ্ছেন, সমস্ত ডেটা সেখানে আছে, এবং নতুন Postgres ইনস্ট্যান্সটি সম্পূর্ণরূপে সোর্স Postgres ইনস্ট্যান্সের সাথে ক্যাচ আপ করেছে।
আপনি এই পরিস্থিতিটি আপনার বর্তমান ডেটা থেকে একটি টেস্ট ডেটাবেস তৈরি করতে ব্যবহার করতে পারেন যাতে আপনি আপনার মূল ডেটাকে প্রভাবিত না করে নতুন ফিচারের সাথে পরীক্ষা-নিরীক্ষা করতে পারেন।
নির্দিষ্ট ব্যাকআপে রিস্টোর করুন
একটি বেস ব্যাকআপ থেকে রিস্টোর করতে, একটি টার্গেট ব্যাকআপ সিলেক্ট করে শুরু করুন। ব্যাকআপ লিস্ট করলে লক্ষ্য করুন যে প্রতিটি ব্যাকআপের একটি уника আইডি থাকে যা সেটি শনাক্ত করতে ব্যবহার করা যায়। নিচের ছবিতে আপনি দেখতে পাবেন যে সিস্টেম 15:36:15 (UTC)-এ ব্যাকআপ নেয়েছিল:
এই সঠিক ব্যাকআপে রিস্টোর করতে, ক্রিয়েট কলের সাথে ব্যাকআপ আইডি যোগ করুন।
ইনস্ট্যান্স লোড হওয়ার পর, লক্ষ্য করুন যে ব্যাকআপে 15:36:15-এর ব্যাকআপ সময়ের আগের ডেটা এবং টাইমস্ট্যাম্প রয়েছে।
নির্দিষ্ট সময়ে রিস্টোর করুন
আপনি যে সময় থেকে রিস্টোর করতে চান তা নির্দিষ্ট করতে, সোর্স ইনস্ট্যান্স আইডি এবং রিস্টোর করার সময় প্রদান করুন, নিচের ছবিতে দেখানো হয়েছে:
এই ক্ষেত্রে, আমি 15:53:00-এ রিস্টোর করতে চাই। রিস্টোর সম্পন্ন হলে, আপনি দেখতে পাবেন যে ডেটা শুধুমাত্র সেই সময় পর্যন্ত রয়েছে।
যদি আপনি পূর্বের ছবিগুলো ফিরে দেখেন, তবে আপনি লক্ষ্য করতে পারেন যে আমাদের 15:53:00-এ আরেকটি টাইমস্ট্যাম্প ছিল, যা 15:53:00-এর ঠিক ০.৮ সেকেন্ড পর ঘটেছিল। তাই এটি এই রিস্টোরে অন্তর্ভুক্ত হয় না। আপনি PITR-এ অত্যন্ত গ্রানুলারভাবে একটি টাইম এবং ডেটাবেসের স্টেট টার্গেট করতে পারেন।
উপসংহার
আপনি এই সব ডেটাবেস রিকভারি ফাংশনালিটি ব্যবহার করতে পারেন। মনে রাখবেন যে আমরা निकট ভবিষ্যতে আরও ফিচার এবং ক্ষমতা যোগ করব। সকলে, আমরা আপনাকে আপডেট রাখব, কিন্তু আপনার কোনো অনুরোধ থাকলে জানাতে পারেন।
Rackspace DBA সার্ভিস সম্পর্কে আরও জানুন
ফিডব্যাক ট্যাব ব্যবহার করে যেকোনো মন্তব্য বা প্রশ্ন করুন। আপনি আমাদের সাথে কথা বলতে পারেন।