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
|
Список | 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 по дате отправления: