सर्वर शुरू करने में विफल रहता है, कोई लॉग नहीं बनाता है, समस्या निवारण कैसे करें?


33

मैं ubuntu 12.04 सर्वर पर 9.3 उदाहरण पोस्टग्रेज शुरू कर रहा हूं:

~# service postgresql start 

 * The PostgreSQL server failed to start. Please check the log output.
                                                                     [fail]

प्रारंभ विफल रहता है, लेकिन यह कोई लॉग नहीं छोड़ता है, यह फ़ाइल खाली है:

tail /var/log/postgresql/postgresql-9.3-main.log 

और इस निर्देशिका में कोई अन्य फाइल नहीं हैं: / var / log / postgresql /

इसका निवारण करने का सबसे अच्छा तरीका क्या है?


क्या यह एक नया pg स्थापित है या आपने सिर्फ एक अपग्रेड किया है? जाँचें कि पोस्टग्रेज उपयोगकर्ता के पास pg config फाइल और लॉग फाइल के अधिकार हैं
LinuxDevOps

3
उसी तरह से चलने की कोशिश करें जैसे आपकी स्क्रिप्ट करती है (सामान्य रूप से su - postgres; /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/dataऔर देखें कि यह आपको क्या देता है। आपको अपने सेटअप के आधार पर उपयोगकर्ता नाम और पथ बदलने की आवश्यकता हो सकती है।
जेनी डी कहते हैं कि मोनिका

क्या @JennyD कहा के अलावा, मैं जोड़ना होगा -d 3करने के लिए postgresआदेश। यह लॉग में लिखे गए अधिक व्यापक डिबगिंग आउटपुट को सक्षम करेगा। आप डिबगिंग आउटपुट को 1 या 2 में बदलकर कम कर सकते हैं, या इसे 4 या 5 में बदलकर बढ़ा सकते हैं। इसके अलावा, आउटपुट क्या है which pgsql?
ज़ीमान

PostgreSQL सर्वर पर कैसे और कहाँ से स्थापित किया गया था? क्या सिस्टम लॉग में कुछ भी है , जैसे / var / log / syslog, / var / log / संदेश, आदि?
क्रेग रिंगर

6
मुझे समझ नहीं आ रहा है कि यह सवाल क्यों बंद किया गया।
गुएतली

जवाबों:


53

डिबग सक्षम के साथ इसे मैन्युअल रूप से चलाने का प्रयास करें। यह अग्रभूमि में चलने और मानक त्रुटि को बढ़ाते हुए किसी भी त्रुटि संदेश को प्रिंट करने का कारण बनेगा, जबकि क्रिया में भी वृद्धि होगी।

मेरा मानना ​​है कि यह Ubuntu पर PostgreSQL 9.3 के लिए सही कमांड लाइन होगी, लेकिन इसके लिए कुछ बहुत ही मामूली ट्विकिंग की आवश्यकता हो सकती है (नोट: लाइन पठनीयता के लिए विभाजित है; आप इसे एक ही लाइन पर पुनः स्थापित कर सकते हैं (बैकस्लैश के बिना) यदि आप चाहें):

/usr/lib/postgresql/9.3/bin/postgres -d 3 -D /var/lib/postgresql/9.3/main \
   -c config_file=/etc/postgresql/9.3/main/postgresql.conf

शुरुआत postgresबाइनरी का स्थान है , फिर हम डिबग को सक्षम करते हैं और इसे स्तर 3 पर सेट करते हैं (आप वर्बोसिटी को बढ़ाने या घटाने के लिए इसे ऊपर या नीचे समायोजित कर सकते हैं)। अगला हम डेटा निर्देशिका और कॉन्फ़िगर फ़ाइल को निर्दिष्ट करते हैं, जिसके साथ शुरू करना है। मुझे लगता है कि Ubuntu सर्वर 12.04 के लिए चूक होना चाहिए।

उम्मीद है, कि समस्या का निर्धारण करने के लिए आपको पर्याप्त जानकारी दी जाएगी।


1
इसे मैन्युअल रूप से शुरू करना मेरे लिए काम करता है, लेकिन अभी भी सेवा का उपयोग नहीं करता है। मैंने डिफ़ॉल्ट डेटा निर्देशिका को बदल दिया है, क्या ऐसा कुछ है जिसे मुझे पोस्टग्रेज शुरू करने के लिए सेवा कमांड को फिर से काम करने के लिए अपडेट करना होगा?
क्रिस्मस

1
@chrismarx - serviceकमांड /etc/init.d/स्क्रिप्ट के चारों ओर एक सुविधाजनक आवरण है जो वास्तव में प्रक्रिया शुरू करता है और रोकता है। जब आप मैन्युअल रूप से इसे चलाते हैं, तो यह देखने के लिए आपको उस स्क्रिप्ट को देखना होगा कि यह अलग तरीके से क्या कर रहा है। bash -x /etc/init.d/postgresql startअपने शोध को शुरू करने के लिए कुछ ऐसा करना एक अच्छी जगह हो सकती है।
क्रिस्टोफर काशेल

3
धन्यवाद, मुझे यह मिल गया, डेटा निर्देशिका के साथ अनुमति के मुद्दे थे, और ऐसा लगता है कि सेवा को sudo के साथ भी चलाया जाना था
chrismarx

1
Lifesaver। मुझे यह बताने का कोई अन्य तरीका नहीं मिला कि PostgreSQL क्यों शुरू नहीं होगा, क्योंकि यह इसलिए था क्योंकि यह अनुमति की समस्याओं के कारण अपनी डेटा निर्देशिका तक नहीं पहुंच सका था।
एरॉन लोरिंस्क

1
मेरे लिए यह विन्यास की अनुमति थी / etc / postgresql /
eugene
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.