Обсуждение: pg_ctlcluster not logging error (memory problem likely)
Hi, I'm trying to find out why my cluster won't start. It looks like I'm pushing up max_connections too high although I think my memory and semaphore settings are OK. Thing is, when the cluster fails to start I can't see any errors in pg_log or in /var/log/messages. When the cluster is up and running it seems to write normally to these locations. Could pg_ctlcluster be writing somewhere else? can I do something to see more verbose messages (more than the empty string) other than setting log parameters in postgres.conf? I'm running 8.3 on Debian btw. Cheers Pif -- The Wellcome Trust Sanger Institute is operated by Genome Research Limited, a charity registered in England with number 1021457 and a company registered in England with number 2742969, whose registered office is 215 Euston Road, London, NW1 2BE.
Tony Webb <amw@sanger.ac.uk> writes: > I'm trying to find out why my cluster won't start. It looks like I'm > pushing up max_connections too high although I think my memory and > semaphore settings are OK. Thing is, when the cluster fails to start I > can't see any errors in pg_log or in /var/log/messages. > When the cluster is up and running it seems to write normally to these > locations. > Could pg_ctlcluster be writing somewhere else? I'm not familar with pg_ctlcluster, but it seems possible that the Debian setup is such that messages issued early in startup go somewhere else than where messages go once the postmaster is fully up and running. In particular, until the postmaster has absorbed the logging settings in postgresql.conf, it's *always* going to write to its stderr. I've seen startup scripts that send postmaster stderr to /dev/null :-( because they suppose that pointing log_destination to syslog or some such means that everything of interest will go there. Advice is to look into the startup script, see where it sends postmaster's stderr, and fix that if it's not someplace you can read. regards, tom lane
Tom Lane wrote: > Tony Webb <amw@sanger.ac.uk> writes: > >> I'm trying to find out why my cluster won't start. It looks like I'm >> pushing up max_connections too high although I think my memory and >> semaphore settings are OK. Thing is, when the cluster fails to start I >> can't see any errors in pg_log or in /var/log/messages. >> > > >> When the cluster is up and running it seems to write normally to these >> locations. >> > > >> Could pg_ctlcluster be writing somewhere else? >> > > I'm not familar with pg_ctlcluster, but it seems possible that the > Debian setup is such that messages issued early in startup go somewhere > else than where messages go once the postmaster is fully up and running. > In particular, until the postmaster has absorbed the logging settings > in postgresql.conf, it's *always* going to write to its stderr. I've > seen startup scripts that send postmaster stderr to /dev/null :-( > because they suppose that pointing log_destination to syslog or some > such means that everything of interest will go there. > > Advice is to look into the startup script, see where it sends > postmaster's stderr, and fix that if it's not someplace you can read. > > regards, tom lane > Thanks Tom. Good advice - I'll check out the pg_ctlcluster script. I've not looked yet. I'm hoping it's a shell script, not perl :-). Cheers Pif -- The Wellcome Trust Sanger Institute is operated by Genome Research Limited, a charity registered in England with number 1021457 and a company registered in England with number 2742969, whose registered office is 215 Euston Road, London, NW1 2BE.
Thanks Val. Yes, I checked the /var/log/postgresql directory but no joy. Good idea re the init.d script although I may resort to pg_ctl as I dont want to restart all of the clusters on this box. Cheers Pif -- The Wellcome Trust Sanger Institute is operated by Genome Research Limited, a charity registered in England with number 1021457 and a company registered in England with number 2742969, whose registered office is 215 Euston Road, London, NW1 2BE.
Tony Webb <amw@sanger.ac.uk> wrote: > Thanks Val. Yes, I checked the /var/log/postgresql > directory but no joy. > Ok, I just had a quick look at the script and it seems that it will first check if you have got 'log_filename' or 'log_directory'configured in your postgresql.conf file. If not it will then check for a symbolic link named 'log' under your/etc/postgresql/$version/$cluster/ folder. And if this link doesn't exist it will fall back to using /var/log/postgresql. Hope that helps. Cheers Val
> Tom Lane wrote: > > Tony Webb <amw@sanger.ac.uk> > writes: > > > >> I'm trying to find out why my cluster won't start. > It looks like I'm pushing up max_connections too high > although I think my memory and semaphore settings are OK. > Thing is, when the cluster fails to start I can't see any > errors in pg_log or in /var/log/messages. > >> > > > > > >> When the cluster is up and running it seems to > write normally to these locations. > >> > > > > > >> Could pg_ctlcluster be writing somewhere else? > >> > > > > I'm not familar with pg_ctlcluster, but it seems > possible that the > > Debian setup is such that messages issued early in > startup go somewhere > > else than where messages go once the postmaster is > fully up and running. > > In particular, until the postmaster has absorbed the > logging settings > > in postgresql.conf, it's *always* going to write to > its stderr. I've > > seen startup scripts that send postmaster stderr to > /dev/null :-( > > because they suppose that pointing log_destination to > syslog or some > > such means that everything of interest will go there. > > > > Advice is to look into the startup script, see where > it sends > > postmaster's stderr, and fix that if it's not > someplace you can read. > > > > > regards, tom lane > > > Thanks Tom. > > Good advice - I'll check out the pg_ctlcluster script. > > I've not looked yet. I'm hoping it's a shell script, not > perl :-). > > Cheers > > Pif > It is a perl script :-). The purpose of which is to make it easier to start and stop several postgres clusters which mightnot even be the same version. It usually writes to /var/log/postgresql/postgresql-X.X-main.log. But you can just try starting the postmaster from the commandline with /etc/init.d/postgresql-X.X star, that way if there were any errors you will see them printed on the terminal. Regards Val