2012-11-30 11 views
11

मुझे उपरोक्त त्रुटि संदेश हैरोकू पोस्टग्रेज़ बेसिक (as per this question) चला रहा है और समस्या का निदान करने का प्रयास कर रहा है।हेरोकू "psql: FATAL: शेष कनेक्शन स्लॉट गैर-प्रतिकृति सुपरसियर कनेक्शन के लिए आरक्षित हैं"

कनेक्शन पूलिंग का उपयोग करना एक सुझाव है लेकिन ऐसा लगता है कि Rails has this built in है। एक और सुझाव यह है कि ऐप अनुचित रूप से कॉन्फ़िगर किया गया है और बहुत सारे कनेक्शन खोलता है।

मेरा ऐप सक्रिय रिकॉर्ड के माध्यम से अपने सभी कनेक्शन प्रबंधित करता है, और मेरे पास Navicat से डेटाबेस के लिए एक सीधा कनेक्शन था (या कम से कम मैंने सोचा था)।

मैं इसे कैसे डिबग करूंगा?

संकल्प

बाहर कर देता है यह एक Heroku मुद्दा था। Heroku समर्थन से:

हमें आपके मूल डेटाबेस को चलाने वाले सर्वर पर एक समस्या मिली है। हम इस को ठीक से निर्धारित है और यह पता लगाते हैं, तो हम आपको प्रावधान एक नया मूल डेटाबेस की सलाह देते हैं और रूप PGBackups यहाँ विस्तृत साथ में माइग्रेट होगा: https://devcenter.heroku.com/articles/upgrade-heroku-postgres-with-pgbackups । यह आपके डेटाबेस को एक नए सर्वर पर रखना चाहिए। मैं इस व्यवधान के लिए क्षमा चाहता हूं - हम इस समस्या को ठीक करने के लिए काम कर रहे हैं और भविष्य में से इसे रोक सकते हैं।

उत्तर

7

आप कारण है कि आप को देखने pg_stat_activity निरीक्षण से इतने सारे कनेक्शन है खोजने के लिए सक्षम हो सकता है:

SELECT * FROM pg_stat_activity 

सबसे अधिक संभावना है, तो आप कुछ आवारा पाश यह बंद किए बिना नया कनेक्शन (रों) खुलती है।

+0

मैं अन्य लोगों से संबंधित कनेक्शन के बहुत सारे देख सकते हैं। मेरा केवल दो है जो समझ में आता है। मैं इस पर नजर रखूंगा। बहुत धन्यवाद! –

12

यह मेरे ऐप पर कुछ बार हुआ है - किसी भी तरह कनेक्शन कनेक्शन रिसाव है, तो अचानक डेटाबेस को 10 गुना कनेक्शन मिलना चाहिए। यदि यह मामला है कि आप इस तरह एक त्रुटि से लादा जा रहा है है, नहीं यातायात, इस चल रहा प्रयास करें:

heroku pg:killall 

कि डेटाबेस के लिए सभी कनेक्शनों को समाप्त कर देगा। यदि आपकी स्थिति के लिए संभवतः प्रश्नों को काटना खतरनाक है तो सावधान रहें। मेरे पास सिर्फ रेल ऐप है, और यदि यह नीचे चला जाता है, तो कुछ प्रश्नों को खोना एक बड़ा सौदा नहीं है, क्योंकि ब्राउजर अनुरोधों को वैसे भी समय के साथ looooooong होगा।

+0

यह मेरे बेकन को बचाया –

4

आप सहायता के लिए कॉल को बचाने के लिए, यहाँ प्रतिक्रिया मैं एक ऐसी ही समस्या के लिए Heroku समर्थन से मिल गया है:

हैलो,

शौक स्तरीय डेटाबेस की सीमाओं में से एक अघोषित रखरखाव है। कई शौक डेटाबेस एक साझा सर्वर पर चलते हैं, और हमें कभी-कभी हार्डवेयर रखरखाव उद्देश्यों के लिए उस सर्वर को पुनरारंभ करने की आवश्यकता होती है, या लोड संतुलन के लिए किसी अन्य सर्वर पर डेटाबेस माइग्रेट करना होगा। जब ऐसा होता है, तो आपको अपने लॉग में एक त्रुटि दिखाई देगी या समस्याएं कनेक्ट हो रही हैं। यदि सर्वर पुनरारंभ हो रहा है, तो डेटाबेस को ऑनलाइन वापस आने में 15 मिनट या अधिक समय लग सकता है।

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

महत्वपूर्ण उत्पादन अनुप्रयोगों के लिए शौक डेटाबेस चलाने के खिलाफ हम अनुशंसा करते हैं। मानक और प्रीमियम डेटाबेस में डाउनटाइम घटनाओं के लिए अधिसूचनाएं शामिल हैं, और सामान्य रूप से अधिक प्रदर्शनशील और स्थिर हैं। आप पीजी का उपयोग कर सकते हैं: एक मानक या प्रीमियम योजना में माइग्रेट करने के लिए प्रतिलिपि बनाएँ।

यदि यह जारी रहता है, तो आप उसके नए उपयोगकर्ता (एक अलग सर्वर पर) को उसकेोकू एडॉन्स के साथ प्रावधान करने का प्रयास कर सकते हैं: जोड़ें, फिर डेटा को स्थानांतरित करने के लिए पीजी: प्रतिलिपि का उपयोग करें। ध्यान रखें कि शौक स्तरीय नियम $ 9 मूल योजना के साथ-साथ मुफ्त डेटाबेस पर भी लागू होते हैं।

धन्यवाद, ब्राडली

संबंधित मुद्दे