PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

नई तालिका बनाते समय क्लाइंट लॉकिंग को पोस्टग्रेज करता है

यदि पोस्टग्रेज को फिर से शुरू करना एक विकल्प है, तो यह सबसे अधिक संभावना है कि समस्या का समाधान हो जाएगा और आपको इस उत्तर के बाकी हिस्सों को पढ़ने में समय बिताने से बचाएगा :-)

pg_stat_activity की जांच करें देखें, शायद कुछ अन्य लेन-देन स्कीमा परिवर्तन को रोक रहे हैं।

select * from pg_stat_activity 
where 
wait_event_type is NULL and xact_start is not NULL order by xact_start;

(प्रत्येक प्रमुख पीजी रिलीज में pg_stat_activity थोड़ा बदल जाती है, पुराने संस्करणों के लिए इसे आजमाएं):

select * from pg_stat_activity 
where 
not waiting and xact_start is not NULL order by xact_start;

दिखाई देने वाली पहली पंक्ति शायद समस्या पैदा करने वाली है। यह अक्सर "लेनदेन में निष्क्रिय" होता है - इसमें ताले बहुत अच्छी तरह से हो सकते हैं, और यदि यह एक पुराना लेनदेन है तो यह प्रदर्शन को भी मार सकता है। शायद प्रोग्रामर "प्रतिबद्ध" या "रोलबैक" के साथ लेनदेन को समाप्त करना सुनिश्चित करना भूल गया, या हो सकता है कि कुछ डीबी सत्र नेटवर्क की समस्याओं के कारण अटक गया हो।

pid 1234 के साथ लेन-देन समाप्त करने के लिए, select pg_cancel_backend(1234); का उपयोग करें , अगर यह विफल रहता है, तो select pg_terminate_backend(1234) . शेल एक्सेस के साथ, समकक्ष कमांड kill -INT 1234 . हैं और kill 1234 . (ध्यान रखें, kill -9 1234 वास्तव में एक बुरा विचार है)।

एक दृश्य भी है pg_locks जो कुछ अंतर्दृष्टि दे सकता है, हालांकि इससे कोई उपयोगी जानकारी प्राप्त करना शायद इतना आसान नहीं हो सकता है। अगर granted सच है, लॉक तब होता है, जब granted गलत है इसका मतलब है कि क्वेरी लॉक की प्रतीक्षा कर रही है। pg_locks से उपयोगी जानकारी निकालने के तरीके के बारे में यहां कुछ और संकेत दिए गए हैं:http://wiki.postgresql। org/wiki/Lock_Monitoring

यदि बाकी सब कुछ विफल हो जाता है, तो शायद सरल समाधान के लिए जाने का समय आ गया है, उस डेटाबेस सर्वर को पुनरारंभ करें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pghoard विकल्प - क्लस्टरकंट्रोल के साथ PostgreSQL बैकअप प्रबंधन

  2. पोस्टग्रेज:पूर्णांक सीमा से बाहर

  3. समवर्ती पहुंच पर तालिका में पंक्तियों के कुछ एनआर को कैसे चिह्नित करें?

  4. केस और विशेष वर्णों को अनदेखा करते हुए दो कॉलम में संभावित डुप्लिकेट खोजें

  5. सभी डेटाबेस नाम प्रदर्शित करें