MySQL ডেডলক - কলাম যোগ করা হচ্ছে


1

আমি একটি কদর্য MySQL সমস্যা অন্য দিন উদ্ভূত ছিল। আমি PHPMyAdmin ইন্টারফেস ব্যবহার করে টেবিল 'প্রচার' (13 টি বিদ্যমান কলাম, ~ 750 রেকর্ড) তে দুটি নতুন কলাম যোগ করেছি। এই প্রশ্নের ("ALTER TABLE .....") সম্পূর্ণরূপে মৃত্যুদন্ড কার্যকর করা হয়নি এবং টেবিলটি লক করা হয়নি, যাতে প্রতিটি পরবর্তী ক্যোয়ারী 'প্রচার' কে ঝুলতে এবং সারিবদ্ধ করে। এই ঘটনার অনুধাবন করতে প্রায় এক ঘন্টা সময় লেগেছিল, এবং আমার ডাটাবেসটি পুনরায় বুট করার মাধ্যমে সমস্যা সমাধান করা হয়েছিল।

ডেটাবেস স্কিমাগুলি পরিবর্তন করার ফলে উদ্ভূত হওয়া প্রয়োজনীয় সতর্কতা এবং জ্ঞাত সমস্যাগুলি কি আছে? আমি এই ধরনের লকিং আগে ঘটতে দেখা যায় না।

উত্তর:


0

বিশেষ করে উৎপাদন পরিবেশে আরও একটি মসৃণভাবে একটি MySQL সারণি পরে নিম্নলিখিত দৃশ্যকল্প বিবেচনা করুন:

1. CREATE tmp_table LIKE original_table
2. ALTER tmp_table..
3. INSERT INTO tmp_table SELECT * FROM original_table
4. RENAME original_table to orginal_table_old
5. RENAME tmp_table to original_table
6. DROP original_table_old

এছাড়াও আপনি আগ্রহী হতে পারে ফ্লাশ টেবিল এবং আনলক টেবিল ডকুমেন্টেশন উপর।

সম্পাদনা: বিকল্প সমাধান যেমন এই সমস্যা সমাধানের জন্য বিদ্যমান আছে Pt-অনলাইন-স্কিমা-পরিবর্তন Percona দ্বারা সরঞ্জাম।


কিভাবে আপনি টেবিল 3 এবং 5 মধ্যে desync'd হত্তয়া থামাতে হবে?
eggyal

এই মত পরিস্থিতিতে জন্য একটি নিখুঁত সমাধান নেই। একটি লাইভ টেবিলের পরিবর্তন করার জন্য একটু ডাউনটাইম প্রয়োজন তবে যদি পর্যাপ্ত সমান্তরাল এবং ব্যবসায়িক-সমালোচনামূলক তথ্য পর্যায়ে না থাকে, তবে এই পদ্ধতিটি কার্যকর হবে। এছাড়াও ফেসবুক ইঞ্জিনিয়াররা এই সমস্যাটির সমাধান করার জন্য অনেক সময় অতিবাহিত করেছেন: facebook.com/notes/mysql-at-facebook/...

হ্যাঁ, এই স্পষ্টভাবে ইন্দ্রিয় তোলে। যদিও এই ক্ষেত্রে "একটু ডাউনটাইম" ছিল না, এটি অন্তত এক ঘন্টার জন্য সম্পূর্ণরূপে লক আউট ছিল। আমি উদাহরণটি পুনরায় বুট করার আগে কি ঘটছে তা নিয়ে বিশ্লেষণ চালানোর জন্য আমার কাছে কিছু সরঞ্জাম ছিল।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.