সর্বশেষ বেশ কয়েকটি ইনডোডব ডেডলকগুলি দেখুন


12

আমি দেখতে পাচ্ছি যে আমি মাইএসকিএল / ইনোডাবের সর্বশেষতম অচলাবস্থা দেখতে পাচ্ছি, তবে অতীতের অচলাবস্থা দেখার কোনও উপায় কি আছে? আমাদের দুটি অচলাবস্থা আছে, একটি গুরুত্বপূর্ণ এবং অন্যটি নয়। কম গুরুত্বপূর্ণ অচলাবস্থা দিনে কয়েকবার ঘটে তাই এটি "সর্বশেষ" অচলাবস্থায় পরিণত হয়।

উত্তর:


15

মাইএসকিউএল 5.5.30 এ চালু হয়েছিল এমন একটি সেটিং রয়েছে: ইনোডাব_প্রিন্ট_ল_এডলকস

এই বিকল্পটি সক্ষম করা থাকলে, InnoDB ব্যবহারকারীর লেনদেনের সমস্ত ডেডলক সম্পর্কিত তথ্য মাইএসকিএলডি ত্রুটি লগতে রেকর্ড করা হয়। অন্যথায়, আপনি কেবলমাত্র শেষ অচলাবস্থার তথ্য দেখুন, ইঞ্জিন INNODB পরিস্থিতি প্রদর্শন করুন command একটি অনিয়মিত InnoDB অচলাবস্থা কোনও সমস্যা নয়, কারণ InnoDB তত্ক্ষণাত শর্তটি সনাক্ত করে এবং লেনদেনগুলির মধ্যে একটি স্বয়ংক্রিয়ভাবে পিছনে যায়। রোলব্যাক সনাক্ত করতে এবং এর ক্রিয়াকলাপটি পুনরায় চেষ্টা করার জন্য যদি কোনও অ্যাপ্লিকেশনটিতে যথাযথ ত্রুটি-পরিচালনার যুক্তি না থাকে তবে ডেডলকগুলি কেন ঘটছে তা সমস্যা সমাধানের জন্য আপনি এই বিকল্পটি ব্যবহার করতে পারেন। বিপুল সংখ্যক ডেডলকগুলি লেনদেনগুলির পুনর্গঠন করার প্রয়োজনকে নির্দেশ করতে পারে যা ডিএমএল জারি করে বা একাধিক টেবিলের জন্য বিবরণ আপডেট করার জন্য ... নির্বাচন করুন, যাতে প্রতিটি লেনদেন একই ক্রমে টেবিলগুলিতে অ্যাক্সেস করে, যাতে এই অচলাবস্থাটি এড়ানো যায়।

এই সেটিংটি কেবল এতে যুক্ত করুন my.cnf

[mysqld]
innodb_print_all_deadlocks = 1

অথবা

[mysqld]
innodb_print_all_deadlocks = on

আপনাকে মাইএসকিএল পুনরায় আরম্ভ করতে হবে না। শুধু মাইএসকিএল এ লগইন করুন এবং চালান

mysql> SET GLOBAL innodb_print_all_deadlocks = 1;

or

mysql> SET GLOBAL innodb_print_all_deadlocks = 'ON';

এই সেটিংটি আমার কাছেও নতুন।

এটি ব্যবহার করে দেখুন এবং আপনার মতামত আমাদের জানান !!!


আমরা চলছে 5.5.34। আমাদের সংস্করণ জন্য কোন বিকল্প আছে?
gwgeller

আমার ভুল. এটি 5.5 dev.mysql.com/doc/refman/5.5/en/… এ রয়েছে । আমি আমার উত্তর আপডেট করব।
রোল্যান্ডোমাইএসকিউএলডিবিএ 19

বিজ্ঞাপন হিসাবে কাজ করে, ধন্যবাদ! আমি এসকিউএল ব্যবহার করে সেটিংস পরিবর্তন করেছি যাতে আমাকে পুনরায় আরম্ভ করতে হবে না। কাকতালীয়ভাবে বেশ কয়েকটি কম গুরুতর অচলাবস্থা ঘটেছে এবং ত্রুটি লগতে প্রদর্শিত হয়েছিল।
গজেলার

রানটাইমের সময় মান নির্ধারণ করা আমার পক্ষে কাজ করে না, এটি ত্রুটি লগতে কিছুই লেখেনি।
lapo

1
@ জর্ডান এডাব্লুএস কখনই সুপারকে ছাড় দেয় না এবং আমি 6 বছর আগে এটি উল্লেখ করেছি: dba.stackex بدل . com / questions / 34525/… । আপনি হ্যাক করে mysql.userচালাতে পারবেন না তা নিশ্চিত করতে তারা ট্রিগার ব্যবহার করে FLUSH PRIVILEGES;
রোল্যান্ডোমাইএসকিউএলডিবিএ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.