এই সকালে আমি এডাব্লুএস আরডিএসে পোস্টগ্রিজ এসকিউএল ডাটাবেস আপগ্রেড করার সাথে জড়িত ছিলাম। আমরা 9.3.3 সংস্করণ থেকে 9.4.4 সংস্করণে যেতে চেয়েছি। আমরা একটি মঞ্চের ডেটাবেজে আপগ্রেডের "পরীক্ষা" করেছি, তবে মঞ্চের ডাটাবেসটি অনেক কম, এবং মাল্টি-এজেড ব্যবহার করে না। দেখা গেল এই পরীক্ষাটি বেশ অপর্যাপ্ত।
আমাদের উত্পাদনের ডাটাবেসটি মাল্টি-এজেড ব্যবহার করে। আমরা অতীতে ছোটখাটো সংস্করণ আপগ্রেড করেছি এবং সে ক্ষেত্রে আরডিএস প্রথমে স্ট্যান্ডবাই আপগ্রেড করবে এবং তারপরে এটিকে মাস্টার হিসাবে উন্নীত করবে। সুতরাং ব্যর্থতার সময় একমাত্র ডাউনটাইম ~ 60s হয়।
আমরা ধরে নিয়েছি যে মূল সংস্করণ আপগ্রেডের ক্ষেত্রেও এটি ঘটবে, তবে ওহে আমরা কী ভুল ছিল।
আমাদের সেটআপ সম্পর্কে কিছু বিশদ:
- db.m3.large
- প্রভিশনড আইওপিএস (এসএসডি)
- 300 জিবি স্টোরেজ, যার মধ্যে 139 জিবি ব্যবহৃত হয়
- আমাদের আরডিএস ওএস আপগ্রেডগুলি অসামান্য ছিল, ডাউনটাইম হ্রাস করার জন্য আমরা এই আপগ্রেডের সাথে ব্যাচ করতে চেয়েছিলাম
আমরা আপগ্রেড করার সময় লগ করা আরডিএস ইভেন্টগুলি এখানে রয়েছে:
ডাটাবেস সিপিইউ প্রায় 08:44 এবং 10: 27 এর মধ্যে সর্বাধিক আউট করা হয়েছিল। এই সময় অনেকটা প্রাক-আপগ্রেড এবং পোস্ট-আপগ্রেড স্ন্যাপশট গ্রহণ করে আরডিএসের দখলে চলেছে বলে মনে হচ্ছে।
এডাব্লুএস ডকস এই জাতীয় প্রতিক্রিয়া সম্পর্কে সতর্ক করে না, যদিও এগুলি পড়ে আমাদের স্পষ্টতই বোঝা যায় যে আমাদের পদ্ধতির একটি স্পষ্ট ত্রুটি হ'ল আমরা মাল্টি-এজেড সেটআপে প্রোডাকশন ডাটাবেসের একটি অনুলিপি তৈরি করি নি এবং এটি হিসাবে আপগ্রেড করার চেষ্টা করি নি একটি ট্রায়াল রান
সাধারণভাবে এটি খুব হতাশার কারণ আরডিএস আমাদের এটি কী করছে এবং কতটা সময় লাগবে তা নিয়ে খুব কম তথ্য দিয়েছে। (আবারও, ট্রায়াল রান করা সাহায্য করতে পারে ...)
তা ছাড়া, আমরা এই ঘটনাটি থেকে শিখতে চাই তাই আমাদের প্রশ্নগুলি এখানে রয়েছে:
- আরডিএসে কোনও বড় সংস্করণ আপগ্রেড করার সময় কি এই জাতীয় জিনিসটি স্বাভাবিক?
- আমরা যদি সর্বনিম্ন ডাউনটাইম সহ ভবিষ্যতে একটি বড় সংস্করণ আপগ্রেড করতে চাই, আমরা কীভাবে এটি ব্যবহার করব? প্রতিলিপিটিকে আরও বিরামবিহীন করার জন্য কি কোনও ধরণের চৌকস উপায় রয়েছে?
ANALYZE
পরিসংখ্যান আপডেট করার জন্য একটি ম্যানুয়াল এটি সমাধান করেছে। কারও কাছে এ সম্পর্কে কোনও অন্তর্দৃষ্টি থাকলে তাও দুর্দান্ত great