Postgres 9.2 में अपग्रेड करते समय पुराने पोस्टमास्टर को बंद नहीं कर सकता


13

मैं पोस्टग्रेज को 9.2.2 (9.1.4 से) में अपग्रेड कर रहा हूं। जब मैं उपयोग करके DBs को अपग्रेड करने का प्रयास करता हूं:

pg_upgrade -b /usr/local/Cellar/postgresql/9.1.4/bin -B /usr/local/Cellar/postgresql/9.2.2/bin -d /usr/local/var/postgres91 -D /usr/local/var/postgres

मुझे निम्न त्रुटि संदेश मिलता है:

Performing Consistency Checks
-----------------------------
Checking current, bin, and data directories                 ok

There seems to be a postmaster servicing the old cluster.
Please shutdown that postmaster and try again.
Failure, exiting

मैंने सर्वर को रोकने की कोशिश की है, लेकिन काम करने के लिए अपग्रेड कमांड प्राप्त नहीं कर सकता। मैं पुराने पोस्टमास्टर को कैसे बंद कर सकता हूं?

जवाबों:


11

postmaster.pidपिछले संस्करण के अंदर होना चाहिए usr/local/varफ़ोल्डर। बस इस फ़ाइल का नाम बदलने से समस्या का समाधान होना चाहिए।


मैं इस समस्या के साथ-साथ कई बार आया हूं और यह एक अच्छा जवाब है। अपग्रेड होने से पहले पोस्टग्रेट्स के सभी उदाहरणों को रोकना चाहिए
जेरोम

4

OS X Yosemite में, होमब्रे के माध्यम से PostgreSQL स्थापित करने के बाद:

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

1
इससे समस्या ठीक नहीं होती। अगर pg_ctl -D /usr/local/var/postgres/ stopरिटर्न No such processचाहिए तो चाहिए rm /usr/local/var/postgres/postmaster.pid
एंड्रयू

1

अधिकांश यूनिक्स प्रणालियों पर आपको एक init स्क्रिप्ट /etc/init.dमिलेगी जिसमें आप यूनिक्स सेवाओं को शुरू, पुनः आरंभ, पुनः लोड या बंद करने के लिए उपयोग कर सकते हैं।

जैसे

sudo /etc/init.d/postgresql stop

यदि यह उपलब्ध नहीं है तो आप उपयोग कर सकते हैं pg_ctl stop

जैसे

su - postgres
bash-3.1$ pg_ctl stop  # normal stop
bash-3.1$ pg_ctl stop -m s # smart stop
bash-3.1$ pg_ctl stop -m f # fast stop
bash-3.1$ pg_ctl stop -m i # immediate stop

के बारे में अधिक pg_ctl

http://www.postgresql.org/docs/9.1/static/app-pg-ctl.html

संपादित करें यदि आप अभी भी त्रुटि प्राप्त करते हैं और आपको यकीन है कि पोस्टमास्टर अब नहीं चल रहा है ( sudo ps aux | grep "postmaster"केवल एक पंक्ति लौटना चाहिए) तो आपके पास अभी भी अशुद्ध शटडाउन के बाद pid फ़ाइल है

पिडफाइल को हटाएं उदा

> sudo -u postgres mv /var/lib/postgres/data-9.1/postmaster.pid /tmp

1
जब मैं कोशिश करता हूं pg_ctl stop, मुझे मिलता है pg_ctl: no database directory specified and environment variable PGDATA unset:। BTW, कोई सर्वर नहीं चल रहा है luciano$ ps auxwww | grep postgresluciano 995 0.0 0.0 2434892 548 s000 R+ 10:42PM 0:00.00 grep postgres:।
लुसियानो

पोस्टमास्टर के लिए grep

आगे की जानकारी के साथ अपडेट किया गया जवाब

कोई किस्मत नहीं:sudo ps aux | grep "postmaster" luciano 3101 0.0 0.0 2434892 548 s002 S+ 9:12PM 0:00.00 grep postmaster
लुसियानो

समस्या का समाधान हो गया। मेरा जवाब देखिए।
लुसियानो

0

Ubuntu पर, अपग्रेड करने से पहले PostgreSQL सेवा बंद कर दें। यह स्थापित किए गए संस्करणों की परवाह किए बिना पोस्टग्रेज के सभी उदाहरणों को रोक देगा।

service postgresql stop

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