আমি কীভাবে খুঁজে পাব যে কোন লেনদেনের ফলে "টেবিল মেটাডেটা লকটির অপেক্ষায়" অবস্থা তৈরি হচ্ছে?


99

আমি একটি টেবিলে কিছু ডিডিএল সম্পাদন করার চেষ্টা করছি এবং এর SHOW PROCESSLISTফলে "টেবিল মেটাডেটা লকের অপেক্ষা করছি" বার্তার ফলস্বরূপ।

কোন লেনদেন এখনও বন্ধ হয়নি তা আমি কীভাবে জানতে পারি?

আমি মাইএসকিউএল v5.5.24 ব্যবহার করছি।

উত্তর:


152
SHOW ENGINE INNODB STATUS \G

বিভাগটি দেখুন -

TRANSACTIONS

আমরা INFORMATION_SCHEMA টেবিলগুলি ব্যবহার করতে পারি ।

দরকারী জিজ্ঞাসা

সমস্ত লক লেনদেনের জন্য অপেক্ষা করছে তা পরীক্ষা করতে:

USE INFORMATION_SCHEMA;
SELECT * FROM INNODB_LOCK_WAITS;

অবরুদ্ধ লেনদেনের একটি তালিকা:

SELECT * 
FROM INNODB_LOCKS 
WHERE LOCK_TRX_ID IN (SELECT BLOCKING_TRX_ID FROM INNODB_LOCK_WAITS);

বা

SELECT INNODB_LOCKS.* 
FROM INNODB_LOCKS
JOIN INNODB_LOCK_WAITS
  ON (INNODB_LOCKS.LOCK_TRX_ID = INNODB_LOCK_WAITS.BLOCKING_TRX_ID);

নির্দিষ্ট টেবিলে তালার তালিকার তালিকা:

SELECT * FROM INNODB_LOCKS 
WHERE LOCK_TABLE = db_name.table_name;

লকের জন্য অপেক্ষা করা লেনদেনের একটি তালিকা:

SELECT TRX_ID, TRX_REQUESTED_LOCK_ID, TRX_MYSQL_THREAD_ID, TRX_QUERY
FROM INNODB_TRX
WHERE TRX_STATE = 'LOCK WAIT';

রেফারেন্স - মাইএসকিউএল সমস্যা সমাধান: প্রশ্নগুলি কাজ না করলে কী করবেন , অধ্যায় 6 - পৃষ্ঠা 96।


17
উল্লেখ করা সমস্ত টেবিল INFORMATION_SCHEMAডাটাবেসে রয়েছে Just
মাইকেল মায়ার

10
এই InnoDB টেবিলগুলি কী সত্যিই মেটাডেটা লকের তথ্য ধারণ করে? এই ব্লগ পোস্টটি অন্যথায় পরামর্শ দেয়: mysql.wisborg.dk/2014/01/13/…
গ্যারেথ

4
@ গ্যারেথ: মাইএসকিএল-এমএসকিএল-5-7-3- অবধি কাজ করে। আপডেট করার জন্য ধন্যবাদ।
জোডি

12
এগুলির সকলের খালি সেট ছিল ... তবুও এখনও প্রক্রিয়া তালিকায় লকটি প্রদর্শিত হচ্ছে ...
কে

4
নিচের মন্তব্য চেক করুন stackoverflow.com/a/36175882/362574
Joddy

52

আপনি যদি টেবিলটি লক করার প্রক্রিয়াটি খুঁজে না পান (কারণ এটি ইতিমধ্যে মারা গেছে) তবে এটি এমন একটি থ্রেড হতে পারে যা এখনও পরিষ্কার করে চলেছে

বিভাগ ট্রান্সঅ্যাকশন

show engine innodb status;

শেষে

---TRANSACTION 1135701157, ACTIVE 6768 sec
MySQL thread id 5208136, OS thread handle 0x7f2982e91700, query id 882213399 xxxIPxxx 82.235.36.49 my_user cleaning up

যেমন একটি মন্তব্যে উল্লেখ করা হয়েছে সাফ লেনদেনের অচলাবস্থা?

আপনি এখানে লেনদেনের থ্রেডটি সরাসরি হত্যা করার চেষ্টা করতে পারেন

 KILL 5208136;

আমার জন্য কাজ।


12

mysql 5.7 performance_schema.metadata_locksটেবিলের মাধ্যমে মেটাডেটা লক সম্পর্কিত তথ্য প্রকাশ করে ।

এখানে ডকুমেন্টেশন


6

আমার ডাটাগ্রিপের সাথে একই রকম সমস্যা ছিল এবং এর সমাধানগুলির কোনওটিই কাজ করে না।

আমি একবার ডেটাগ্রিপ ক্লায়েন্টটি পুনরায় চালু করলে এটি আর সমস্যা ছিল না এবং আমি আবার টেবিলগুলি ফেলে দিতে পারি।


4
পুনঃসূচনা / রিবুট - যে কোনও কম্পিউটার সমস্যার জন্য 100% কার্যকারী সমাধান। তবে
প্রোডে

4
আমার একই সমস্যা হয়েছিল এবং ডেটাগ্রিপটি হঠাৎ করে সমস্ত লক ফেলে দেওয়া হয়েছিল। এটি নষ্ট সময়ের একগুচ্ছ ..
স্কটবুরফিল্ডমিলস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.