এটি একটি সাধারণ পোস্টগ্রাসের উত্তর, এবং হিরকুর সাথে নির্দিষ্ট নয়
(এই প্রশ্নের সহজ-বোকা উত্তর হতে পারে ... কেবল পোস্টগ্র্যাসকিএল পুনরায় আরম্ভ করুন ing ধরে নেওয়া যায় যে এটি পছন্দসই নয় বা বিকল্প নয় ...)
এই স্কয়ার চালিয়ে পিআইডি সন্ধান করুন:
SELECT pid , query, * from pg_stat_activity
WHERE state != 'idle' ORDER BY xact_start;
(ক্যোয়ারির পোস্টগ্রাসের সংস্করণের উপর নির্ভরশীল সংশোধন দরকার হতে পারে - অবশেষে কেবলমাত্র পিজি_স্ট্যাট_অ্যাক্টিভিটি থেকে * নির্বাচন করুন)। আপনি প্রথম (বাম) কলামে পিডটি পেয়ে যাবেন এবং প্রথম (শীর্ষ) সারিটি আপনি যে ক্লোয়ারটি শেষ করতে চান তা হতে পারে। আমি ধরে নিচ্ছি পিডটি নীচে 1234।
আপনি এসকিউএল (যেমন শেল অ্যাক্সেস ব্যতীত) কোনও ক্যোয়ারী বাতিল করতে পারেন যতক্ষণ না এটি আপনার বা আপনার ব্যবহারকারীর কাছে অ্যাক্সেস রয়েছে:
select pg_cancel_backend(1234);
1234-ক্যোয়ারী বাতিল করার জন্য এটি একটি "বন্ধুত্বপূর্ণ" অনুরোধ, এবং কিছু ভাগ্যের সাথে এটি কিছুক্ষণ পরে অদৃশ্য হয়ে যাবে। শেষ পর্যন্ত, এটি আরও কার্যকর:
select pg_terminate_backend(1234);
আপনার শেল অ্যাক্সেস এবং রুট বা পোস্টগ্রিজ অনুমতি থাকলে আপনি শেল থেকে এটিও করতে পারেন। "বাতিল" করতে একজন এটি করতে পারেন:
kill -INT 1234
এবং "সমাপ্ত", সহজভাবে:
kill 1234
করো না:
kill -9 1234
... এর ফলে প্রায়শই পুরো পোস্টগ্র্যাস সার্ভারটি শিখায় নেমে যায়, তারপরে আপনি পোস্টগ্রিস পুনরায় চালু করতে পারেন। পোস্টগ্রিস বেশ মজবুত, সুতরাং ডেটাটি দুর্নীতিগ্রস্থ হবে না, তবে আমি "কিল -9" যে কোনও ক্ষেত্রে ব্যবহার করার বিরুদ্ধে সুপারিশ করব :-)
একটি দীর্ঘস্থায়ী "লেনদেনে নিষ্ক্রিয়" এর অর্থ প্রায়ই হয় যে লেনদেনটি "কমিট" বা "রোলব্যাক" দিয়ে শেষ করা হয়নি, যার অর্থ অ্যাপ্লিকেশনটি বগিযুক্ত বা লেনদেনের ডাটাবেসের সাথে কাজ করার জন্য সঠিকভাবে ডিজাইন করা হয়নি। দীর্ঘস্থায়ী "লেনদেনের মধ্যে নিষ্ক্রিয়" এড়ানো উচিত, কারণ এটি বড় পারফরম্যান্সের সমস্যাও তৈরি করতে পারে।