升级到Postgres 9.2时无法关闭旧的postmaster


13

我正在从9.1.4升级到Postgres 9.2.2。当我尝试使用以下方法升级数据库时:

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

我正在尝试停止服务器,但无法使升级命令正常工作。如何关闭旧的邮政局长?

Answers:


11

postmaster.pid应该是以前版本的内部usr/local/var文件夹。只需重命名该文件即可解决问题。


我也遇到过几次这个问题,这是一个很好的答案。在升级前停止的Postgres的所有实例应该是相关的,以及
杰罗姆

4

在OS X Yosemite中,通过Homebrew安装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
安德鲁(Andrew)

1

在大多数unix系统上,您会找到一个init脚本,/etc/init.d可用于在其中启动,重新启动,重新加载或停止unix服务。

例如

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文件

删除pidfile,例如

> 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。顺便说一句,似乎没有服务器正在运行:luciano$ ps auxwww | grep postgresluciano 995 0.0 0.0 2434892 548 s000 R+ 10:42PM 0:00.00 grep postgres
Luciano

grep for postmaster

更新的答案以及更多信息

没有运气:sudo ps aux | grep "postmaster" luciano 3101 0.0 0.0 2434892 548 s002 S+ 9:12PM 0:00.00 grep postmaster
卢西亚诺

问题已解决。看我的答案。
Luciano

0

在Ubuntu上,在执行升级之前,请停止PostgreSQL服务。无论安装什么版本,这都将停止所有postgres实例。

service postgresql stop

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.