Обсуждение: Linux: ps output shows multiple instances of PostgreSQL running on the same port

Поиск
Список
Период
Сортировка

Linux: ps output shows multiple instances of PostgreSQL running on the same port

От
David Throckmorton
Дата:
Following a recent database crash, I encountered the following when doing debug:

[root@my-db myhost]# ps -ef | grep pgsql
postgres 19643  5737  0 09:42 ?        00:00:00 /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data
postgres 19644  5737  0 09:42 ?        00:00:00 /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data
postgres 19657  5737  0 09:42 ?        00:00:00 /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data
postgres 19658  5737  0 09:42 ?        00:00:00 /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data

pgstartup.log doesn't indicate anything about multiple instances starting, and indicates that PID 5737 was the initial PID for the instance:

# cat pgstartup.log
2012-09-07 08:01:33 MDT [5737]

Not to mention the fact that a whole series of things would have to go wrong to have PostgreSQL listening on the same port and different PIDs - so many I can't even imagine it.

So I'm wondering if this has even been seen before (and/or whether I'm just chasing windmills here).

Environment:
OS: CentOS 5 - 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
PostgreSQL Version: psql (9.0.4)

Thanks.

Re: Linux: ps output shows multiple instances of PostgreSQL running on the same port

От
Tom Lane
Дата:
David Throckmorton <throckwork@gmail.com> writes:
> Following a recent database crash, I encountered the following when doing
> debug:

> [root@my-db myhost]# ps -ef | grep pgsql
> postgres 19643  5737  0 09:42 ?        00:00:00
> /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data
> postgres 19644  5737  0 09:42 ?        00:00:00
> /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data
> postgres 19657  5737  0 09:42 ?        00:00:00
> /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data
> postgres 19658  5737  0 09:42 ?        00:00:00
> /usr/pgsql-9.0/bin/postmaster -p 5432 -D /var/lib/pgsql/9.0/data

> pgstartup.log doesn't indicate anything about multiple instances starting,
> and indicates that PID 5737 was the initial PID for the instance:

Almost certainly, these are just regular postmaster child processes.
I'm not sure why "ps" is showing you the original postmaster command
line rather than the usual modified process title --- that's a known
behavior on some Unixen but I've not heard of it on Linux.  Are you
using a nonstandard flavor of "ps"?

Also, is process 5737 still around?  If it was dead, I would rather
expect ps to show the orphaned processes as children of pid 1.
If it is around, what is ps showing as its command line?  Can you
connect to the database?

            regards, tom lane