मेरे पास कई PostgreSQL सर्वर स्थापित हैं। मैं पुराने सर्वर के लिए ऑटो बूट को कैसे निष्क्रिय करूं?


24

मैं Oracle VirtualBox पर Ubuntu 12.04 चला रहा हूं। कुछ महीने पहले, मैंने अपनी मशीन पर PostgreSQL सर्वर संस्करण 9.1 स्थापित किया। अभी हाल ही में, मुझे पता चला कि PostgreSQL सर्वर 9.3 JSON डेटा प्रकारों का समर्थन करता है, इसलिए मैंने अपग्रेड करने का निर्णय लिया।

मैंने यहां निर्देशों का पालन करते हुए 9.3 में अपग्रेड किया:

https://wiki.postgresql.org/wiki/Apt

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql-9.3 pgadmin3

यह संस्करण 9.1 के साथ मेरी मशीन पर सर्वर संस्करण 9.3 स्थापित है। एक ताजा बूट देने के बाद pg_lsclusters चलाना:

Ver Cluster Port Status Owner    Data directory               Log file
9.1 main    5433 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main    5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log

फिर मैंने निम्न पोस्ट-अपग्रेड रखरखाव किया: मैंने अपने 9.1 सर्वर से pg_dump के साथ कई तालिकाओं का निर्यात किया और उन्हें अपने 9.3 सर्वर पर पुनर्स्थापित किया। फिर मैंने 9.1 और 9.3 के लिए अपनी कॉन्फिग फाइल खोली /etc/postgresql/$VERSION/main/postgresql.confऔर उनके पोर्ट नंबरों को स्वैप किया ताकि मेरा psql क्लाइंट डिफॉल्ट रूप से नए सर्वर से कनेक्ट हो जाए।

मेरा सवाल यह है। 9.1 और 9.3 दोनों बूट पर शुरू होते हैं। मैं ऑटो बूटिंग से 9.1 को रोकना चाहूंगा, क्योंकि यह मेरे सिस्टम मेमोरी का लगभग 5% लेता है। मैं यह कैसे कर सकता हूँ?

संसाधनों से परामर्श:

एक सर्वर शुरू करने पर PostgreSQL डॉक्टर पृष्ठ मुझे मानक init.d निर्देशिका की ओर इशारा करता है। मेरी init.d निर्देशिका स्क्रिप्ट शामिल नहीं है postgresql। ऐसा लगता है कि इस स्क्रिप्ट को केवल एक संस्करण लॉन्च करने के लिए कॉन्फ़िगर किया जा सकता है, लेकिन आवश्यक परिवर्तन मेरे लिए स्पष्ट नहीं है।

http://www.postgresql.org/docs/9.1/interactive/server-start.html

नीचे दी गई पोस्ट बहुत जानकारीपूर्ण थी, लेकिन यह दिखाता है कि क्लस्टर को कैसे हटाया जाए, न कि स्टार्टअप पर एक को कैसे निष्क्रिय किया जाए। मैं अपने पुराने क्लस्टर को स्थापित करना चाहूंगा, क्योंकि मैं इससे आगे की जानकारी प्राप्त करना चाहता हूं।

मुझे लगता है कि मेरे पास कई पोस्टग्रेजल सर्वर हैं, मैं 'अतिरिक्त' लोगों को कैसे पहचानूं और कैसे हटाऊं?

मैंने सिस्टम को लोड करने के बाद सर्वर को मारने के लिए एक स्क्रिप्ट लिखने पर विचार किया है, लेकिन यह अक्षम लगता है। क्या बूट पर संस्करण 9.1 को अक्षम करने के लिए एक क्लीनर तरीका है?

जवाबों:


43

एक हैक के कम के लिए, संपादित करें या के साथ /etc/postgresql/9.1/main/start.confबदलें या ।automanualdisabled


धन्यवाद ch2500! यह समाधान सहज है और मुझे इसकी आवश्यकता है।
बिटपश्चर 16

मैं कई घंटों से इस तरह का जवाब ढूंढ रहा हूं। बहुत धन्यवाद।
जोनाथन वानास्को

10

डेबियन ने एक सर्वर पर कई संस्करणों या PostgreSQL की स्थापना को आसान बनाने के लिए कई स्क्रिप्ट (जैसे pg_ * क्लस्टर उपयोगिताओं) बनाई, यही कारण है कि यह postgresql.org पर प्रलेखित नहीं है।

मुझे यकीन नहीं है कि अगर PostgreSQL का खुद का .debपैकेज डेबियन के समान स्टार्टअप तंत्र का उपयोग करता है, लेकिन मेरे पास मौजूद पैकेज को देखते हुए, यदि आप बनाते हैं /etc/init.d/postgresql-9.1(भले ही इसकी खाली फाइल हो) तो /etc/init.d/postgresqlआप मान लेंगे कि आप उस संस्करण को अलग से नियंत्रित करना चाहते हैं और नहीं करेंगे इसे डिफ़ॉल्ट रूप से शुरू करें। आप अभी भी इसके साथ शुरू कर सकते हैं

service postgresql start 9.1

संस्करण खोज को ओवरराइड करने के लिए।


धन्यवाद DerfK, यह काम किया। मैंने आपके द्वारा सुझाई गई फ़ाइल बनाई, उसमें एक हैश बैंग लगाया, और इसे निष्पादन योग्य बनाया। जब मैंने रिबूट किया, pg_lsclusters दिया: Ver Cluster Port Status Owner Data directory Log file 9.1 main 5433 down postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log 9.3 main 5432 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
BitPusher16

PostgreSQL डेबियन पैकेजिंग टीम के पैकेज डेबियन से समान हैं। आपको अपने खुद के sysv init स्टार्ट स्क्रिप्ट को हैक करने के बजाय pg_ * क्लस्टर इन्फ्रास्ट्रक्चर का उपयोग करना चाहिए।
माइकल रेनर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.