পোস্টগ্রেস 9.2 এ আপগ্রেড করার সময় পুরানো পোস্টমাস্টার বন্ধ করতে পারবেন না


13

আমি পোস্টগ্রিস 9.2.2 এ উন্নীত করছি (9.1.4 থেকে)। আমি যখন ডিবিগুলি ব্যবহার করে আপগ্রেড করার চেষ্টা করি:

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

ওএস এক্স ইয়োসেমাইটে হোমগ্রাবের মাধ্যমে পোস্টগ্র্যাস এসকিউএল ইনস্টল করার পরে:

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

বেশিরভাগ ইউনিক্স সিস্টেমে আপনি একটি প্রাথমিক স্ক্রিপ্ট পাবেন /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"- কেবল একটি লাইন ফেরত পাঠানো উচিত) আপনার কাছে এখনও অশুচি বন্ধের পরে পিড ফাইল রয়েছে

পিডফাইল যেমন সরান

> 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
লুকিয়ানো

পোস্টমাস্টারের জন্য গ্রেপ

আরও তথ্যের সাথে উত্তর আপডেট হয়েছে

ভাগ্য নেই:sudo ps aux | grep "postmaster" luciano 3101 0.0 0.0 2434892 548 s002 S+ 9:12PM 0:00.00 grep postmaster
লুসিয়ানো

সমস্যা সমাধান হয়েছে। আমার উত্তর দেখুন।
লুসিয়ানো

0

উবুন্টুতে, আপগ্রেড করার আগে পোস্টগ্র্যাস এসকিউএল পরিষেবা বন্ধ করুন। এটি ইনস্টল করা সংস্করণ নির্বিশেষে পোস্টগ্রাসের সমস্ত দমন বন্ধ করে দেবে।

service postgresql stop

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.