লকের অপেক্ষার সময়সীমা অতিক্রম করে; লেনদেন পুনরায় চালু করার চেষ্টা করুন


12

আমি এই ত্রুটিটি প্রতিদিন 4 - 5 বার বার বার পাই।

এসকিউএলস্টেট [এইচওয়াই 1000]: সাধারণ ত্রুটি: 1205 লক অপেক্ষার সময়সীমা অতিক্রম করেছে; লেনদেন পুনরায় চালু করার চেষ্টা করুন

এবার আমি আমার পিএইচপিএমইডমিন পুনরায় চালু করি তবে এটি বারবার ঘটে। আমি এই সমস্যাটি উল্লেখ করতে পারছি না।

আমি ম্যাজেন্টো ভেরি ব্যবহার করছি ওয়েবসাইটে 1.9.0.1 । আমার কাছে 7000+ পণ্য রয়েছে। সার্ভারে আমার 16 জিবি র‌্যাম রয়েছে।

এই সমস্যাটি কীভাবে সমাধান করবেন?

উত্তর:


8

আপনি ইনডোডিবি_লক_উইট_টাইমআউট সেট করে ইনোডিবি- র জন্য লক ওয়েট টাইমআউট মান বাড়ানো বিবেচনা করা উচিত , ডিফল্ট 50 সেকেন্ড

mysql> show variables like 'innodb_lock_wait_timeout';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50    |
+--------------------------+-------+
1 row in set (0.01 sec)

আপনি /etc/my.cnfএই লাইনের সাথে স্থায়ীভাবে এটিকে উচ্চতর মানতে সেট করতে পারেন

[mysqld]
innodb_lock_wait_timeout=120

এবং mysql পুনরায় আরম্ভ করুন। আপনি যদি এই সময়টি মাইএসকিএল পুনরায় চালু করতে না পারেন তবে এটি চালান:

SET GLOBAL innodb_lock_wait_timeout = 120; 

আপনি আপনার সেশনের সময়কালের জন্য এটি ঠিক সেট করতে পারেন

SET innodb_lock_wait_timeout = 120; 

আপনার জিজ্ঞাসা অনুসারে


3
140 বা 2000 'কেন নয়? এটি আসলে কীভাবে সমস্যার সমাধান করতে পারে? এটা গোপন করে?
এলজো ভালুগি

আপনার একটি সমস্যা রয়েছে যার কারণে টেবিলগুলি যুক্তিসঙ্গত প্রত্যাশার চেয়ে বেশি লক হয়ে যায়। আপনি যদি এটি করেন তবে একবার সমস্যা সমাধানের পরিবর্তে আপনি প্রতিবার 2 মিনিট অপেক্ষা করতে বাধ্য হন। এবং এলজো যেমন বলেছে ... 120 টি যথেষ্ট না হলে কী ঘটে?
কার্লোস রোবলস

7

আপনি এই বার্তাটি দেখতে পাবেন যদি আপনি অ্যাক্সেস করার চেষ্টা করছেন এমন ডাটাবেস বিষয়বস্তুগুলি পূর্ববর্তী কোনও প্রক্রিয়া দ্বারা (সাধারণত দীর্ঘকাল চলমান) লক হয়ে গেছে। মাইএসকিউএল ত্রুটিটি ছেড়ে দেওয়ার আগে এবং তা ছুঁড়ে ফেলার আগে লকটি সরিয়ে ফেলার জন্য নির্দিষ্ট সময়ের জন্য অপেক্ষা করবে। আপনি যদি দিনের কোনও ধারাবাহিক সময়ে এই ত্রুটি বার্তাগুলি যখন দেখছেন আপনি যদি ট্র্যাক করতে সক্ষম হন তবে আপনার সেই সময় সার্ভারটি আরও কী করছে তা দেখতে হবে - উদাহরণস্বরূপ একটি ডাটাবেস ব্যাকআপ চলছে। এটি করার মাধ্যমে আপনি কী প্রক্রিয়াগুলি লকটি তৈরি করতে পারে তার সম্ভাবনাগুলি সঙ্কুচিত করতে সক্ষম হওয়া উচিত যদিও এটি করা সবসময় সোজা এগিয়ে থাকে না - সম্ভবত কিছুটা ট্রায়াল এবং ত্রুটি হতে পারে।


5

এই সমস্যার পেছনের কারণ হ'ল যদি আপনি প্রচুর কাস্টম স্ক্রিপ্টগুলি চালাচ্ছেন এবং ডাটাবেস সংযোগটি বন্ধ হওয়ার সুযোগ পাওয়ার আগে স্ক্রিপ্টগুলি বধ করছেন।

কিছু ক্যোয়ারির সম্পাদনকে অবরুদ্ধ করছে। সম্ভবত আপনার ক্যোয়ারির একটি সারণী থেকে অন্যটি কোয়েরি আপডেট করা, সন্নিবেশ করা বা মুছতে হবে। এটি কী তা আপনাকে খুঁজে বের করতে হবে:

আপনি যদি সি এল এল থেকে মাইএসকিউএল এ লগইন করতে পারেন এবং নিম্নলিখিত কমান্ডটি চালাতে পারেন

SHOW PROCESSLIST;

একবার আপনি ব্লকিং / স্লিপ প্রক্রিয়াটি সনাক্ত করার পরে এটি সন্ধান করুন idএবং চালান:

KILL {id};

আপনার প্রাথমিক ক্যোয়ারী পুনরায় রান করুন।

এই লিঙ্কটি আপনাকে সাহায্য করবে: এসকিউএসএলসেট [এইচওয়াই 1000]: সাধারণ ত্রুটি: 1205 লক অপেক্ষার সময়সীমা অতিক্রম করেছে; Magento লেনদেন পুনরায় চালু করার চেষ্টা করুন


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