Re: need a method to ping a running database

Поиск
Список
Период
Сортировка
От Steve Crawford
Тема Re: need a method to ping a running database
Дата
Msg-id 200306121018.27880.scrawford@pinpointresearch.com
обсуждение исходный текст
Ответ на Re: need a method to ping a running database  (Dima Tkach <dmitry@openratings.com>)
Ответы Re: need a method to ping a running database  (Dmitry Tkach <dmitry@openratings.com>)
Список pgsql-general
So try:
`psql -d database -h server -c "select 'It is running'" 2>/dev/null | grep -c
"It is running"`

Though I don't think the "ERROR: database is staring up" is an incorrect error
as it still means that the database is not ready to handle queries. Still, I
think it's safer to look for the existence of expected results that the
absence of specific error messages.

Cheers,
Steve

On Wednesday 11 June 2003 6:42 pm, Dima Tkach wrote:
> What about
>
> down= \
> `psql -d database -h server -c 'select 1;' 2>&1 | grep -c '^ERROR'`
>
> ?
>
> Dima.
>
> P.S. One thing to be cautious about is that if it has just been started,
> you'll get something like 'ERROR: The database is starting up.', that
> will get counted as an error (probably incorrectly)... So, the real
> implementation has to be a little more elaborate then that to be able to
> catch and handle that situation...
>
> Travis Hume wrote:
> > I need a shell scriptable method to determine if a postgresql database
> > is running and accepting connections.
> >
> > I've written a script to start out postgresql database and I was using:
> > "pg_ctl status"
> >
> > to determine if the database had been started.  There are a couple of
> > problems with this method.  It seems that if you start postgresql and
> > then issue a "kill -9" on the postmaster processes a .pid file is left
> > behind (understandable), but then if you run "pg_ctl status" it will
> > immediately report that the database is running and give you the pid
> > number and whatever else.  This is a bit misleading to say the least.
> > To solve this problem I changed my db_ping() function to be more like
> > "ps ax |grep -q postmaster && pg_ctl status".  This works better, but
> > there is still a problem.
> >
> > The .pid file is being written immediately, not when the database is
> > actually up and accepting connections.  This causes my java app to try
> > and open the database and setup a connection pool before it should.
> >
> > I need a shell scriptable method to determine if the database is started
> > and ready to accept connections.
> >
> >
> >
> > ---------------------------(end of broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html


В списке pgsql-general по дате отправления:

Предыдущее
От: Erik Price
Дата:
Сообщение: LAST_INSERT_ID equivalent
Следующее
От: Dmitry Tkach
Дата:
Сообщение: Re: need a method to ping a running database