I posted to this group before with the same topic but nobody replied.
Please, provide some feedback if you can.
I am running a warm standby server, which executes the following command in
a recovery mode:
triggered=false
while (test ! -f /var/ipsc/WAL/$1 && ! $triggered)
do
echo waiting for file: $1
sleep 30
if test -f /var/ipsc/pgsql/trigger
then
echo --- trigger found ---
echo --- exiting recovery mode ---
triggered=true
fi
done
if ( ! $triggered)
then
cp /var/ipsc/WAL/$1 $2
else
exit 133
fi
Recovery command works just fine restoring data from the WAL files scp'd
from the primary server. While in the recovery mode, when I create the
trigger file breaking the while loop in recovery command, postgres does not
go gently into the active database mode. Here is output:
waiting for file: 00000001000000000000003A
--- trigger found ---
--- exiting recovery mode ---
FATAL: could not restore file "00000001000000000000003A" from archive:
return code 34048
LOG: startup process (PID 13994) exited with exit code 1
LOG: aborting startup due to startup process failure
After finding the trigger file my recovery_cmd returns non-zero code. Why
am I still getting FATAL: could not restore file ?
Both my primary and standby servers run on Solaris 10 under SMF. When the
standby server is attempting to change mode from recovery to regular
database mode, there might be a race condition there between SMF trying to
restart the server and the server trying to restart itself. or am I just
hallucinating.
Thanks in advance for your comments.
Cheers,
~george