cant connect to the database, even after doing start of postmaster using a script

Started by surabhi.ahujaover 19 years ago5 messagesgeneral
Jump to latest
#1surabhi.ahuja
surabhi.ahuja@iiitb.ac.in

Hi all,
i have a script to stop and start postmaster

However i have noticed this many a time sdnow. I stop postmaster using that script
and then start using a script.

However if i try to do psql <dbname>, it gives me an error saying that the postmaster is not up.

Why is it that the postmaster went down on its own, even though i had done a srart after stop.

thanks,
regards
Surabhi

#2Scott Marlowe
smarlowe@g2switchworks.com
In reply to: surabhi.ahuja (#1)
Re: cant connect to the database, even after doing start

On Thu, 2006-07-13 at 01:20, surabhi.ahuja wrote:

Hi all,
i have a script to stop and start postmaster

However i have noticed this many a time sdnow. I stop postmaster using
that script
and then start using a script.

However if i try to do psql <dbname>, it gives me an error saying that
the postmaster is not up.

Why is it that the postmaster went down on its own, even though i had
done a srart after stop.

How are you stopping the database? Let me guess that it's "pg_ctl -m
immediate stop".

pg_ctl --help tells us:

Shutdown modes are:
smart quit after all clients have disconnected
fast quit directly, with proper shutdown
immediate quit without complete shutdown; will lead to recovery on
restart

Basically, -m immediate does a kill -9 on all the postgresql processes.
It's an inch away from pulling the plug, except that lying hardware
still gets to flush its caches.

So, if you're stopping pgsql that way, then when it starts up, it does
so in recovery mode, and it can't allow connections until recovery is
finished.

If you're stopping it some other way though, then things might be going
wrong in some other way.

#3surabhi.ahuja
surabhi.ahuja@iiitb.ac.in
In reply to: surabhi.ahuja (#1)
Re: cant connect to the database, even after doing start

this is what is happening

stop(){
echo "Stopping ${NAME} service: "
if [ "`uname`" = "Linux" ]; then
/bin/sh -c "$PGCTL stop -D $PGDATA -s -m fast" > /dev/null 2>&1
fi
ret=$?
if [ $ret -eq 0 ]
then
echo_success
else
echo_failure
if [ "`uname`" = "Linux" ]; then
/bin/sh -c "$PGCTL stop -D $PGDATA -s -m immediate" > /dev/null 2>&1
fi
fi
echo
}

u mean to say that /bin/sh -c "$PGCTL stop -D $PGDATA -s -m immediate" > /dev/null 2>&1
is causing problem

what shd be done, shd it be removed?

________________________________

From: pgsql-general-owner@postgresql.org on behalf of Scott Marlowe
Sent: Thu 7/13/2006 9:27 PM
To: surabhi.ahuja
Cc: pgsql general
Subject: Re: [GENERAL] cant connect to the database, even after doing start

***********************
Your mail has been scanned by InterScan VirusWall.
***********-***********

On Thu, 2006-07-13 at 01:20, surabhi.ahuja wrote:

Hi all,
i have a script to stop and start postmaster

However i have noticed this many a time sdnow. I stop postmaster using
that script
and then start using a script.

However if i try to do psql <dbname>, it gives me an error saying that
the postmaster is not up.

Why is it that the postmaster went down on its own, even though i had
done a srart after stop.

How are you stopping the database? Let me guess that it's "pg_ctl -m
immediate stop".

pg_ctl --help tells us:

Shutdown modes are:
smart quit after all clients have disconnected
fast quit directly, with proper shutdown
immediate quit without complete shutdown; will lead to recovery on
restart

Basically, -m immediate does a kill -9 on all the postgresql processes.
It's an inch away from pulling the plug, except that lying hardware
still gets to flush its caches.

So, if you're stopping pgsql that way, then when it starts up, it does
so in recovery mode, and it can't allow connections until recovery is
finished.

If you're stopping it some other way though, then things might be going
wrong in some other way.

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

http://archives.postgresql.org

#4Scott Marlowe
smarlowe@g2switchworks.com
In reply to: surabhi.ahuja (#3)
Re: cant connect to the database, even after doing start

On Fri, 2006-07-14 at 02:48, surabhi.ahuja wrote:

this is what is happening

stop(){
echo "Stopping ${NAME} service: "
if [ "`uname`" = "Linux" ]; then
/bin/sh -c "$PGCTL stop -D $PGDATA -s -m fast" > /dev/null
2>&1
fi
ret=$?
if [ $ret -eq 0 ]
then
echo_success
else
echo_failure
if [ "`uname`" = "Linux" ]; then
/bin/sh -c "$PGCTL stop -D $PGDATA -s -m immediate"

/dev/null 2>&1

fi
fi
echo
}

u mean to say that /bin/sh -c "$PGCTL stop -D $PGDATA -s -m
immediate" > /dev/null 2>&1
is causing problem

what shd be done, shd it be removed?

It's not how I'd do it, certainly. Which branch gets run most the
time? Have you tested to make sure that the -m fast really runs and
gets a chance to work? What script is this from? Is it a stock one
that came with your distribution, or home grown?

#5surabhi.ahuja
surabhi.ahuja@iiitb.ac.in
In reply to: surabhi.ahuja (#1)
Re: cant connect to the database, even after doing start

this script is taken from the distribution also

but i think the second check, to do stop -m immidiate is home grown.

thanks,
regards
Surabhi

________________________________

From: Scott Marlowe [mailto:smarlowe@g2switchworks.com]
Sent: Fri 7/14/2006 9:44 PM
To: surabhi.ahuja
Cc: pgsql general
Subject: RE: [GENERAL] cant connect to the database, even after doing start

***********************
Your mail has been scanned by InterScan VirusWall.
***********-***********

On Fri, 2006-07-14 at 02:48, surabhi.ahuja wrote:

this is what is happening

stop(){
echo "Stopping ${NAME} service: "
if [ "`uname`" = "Linux" ]; then
/bin/sh -c "$PGCTL stop -D $PGDATA -s -m fast" > /dev/null
2>&1
fi
ret=$?
if [ $ret -eq 0 ]
then
echo_success
else
echo_failure
if [ "`uname`" = "Linux" ]; then
/bin/sh -c "$PGCTL stop -D $PGDATA -s -m immediate"

/dev/null 2>&1

fi
fi
echo
}

u mean to say that /bin/sh -c "$PGCTL stop -D $PGDATA -s -m
immediate" > /dev/null 2>&1
is causing problem

what shd be done, shd it be removed?

It's not how I'd do it, certainly. Which branch gets run most the
time? Have you tested to make sure that the -m fast really runs and
gets a chance to work? What script is this from? Is it a stock one
that came with your distribution, or home grown?