Re: Warm-Backup configuration question - Mailing list pgsql-admin
From | Tom Arthurs |
---|---|
Subject | Re: Warm-Backup configuration question |
Date | |
Msg-id | 46CE3A58.3050407@jobflash.com Whole thread Raw |
In response to | Warm-Backup configuration question (Kenji Morishige <kenjim@juniper.net>) |
List | pgsql-admin |
You need to make the script wait forever for the next archive file, or return 1 only if you want to complete the recovery. Here's a stub of what we do: #!/usr/bin/ksh set -e # Where copy.sh fetches WALs from ARCHDIR=/data3/archive_log # Name of log file that copy.sh writes to copy_log=copy.log # Name of stop file that copy looks for to signal "go live" copy_stop=copy.stop # How many seconds sleep between copy iterations seconds=15 # Expected size of WAL file size=16777216 src=$1 dest=$2 base=$(basename $src) exec >>$copy_log exec 2>&1 echo $base case $base in *.history) echo "\tignored" exit 1 ;; *.backup) size=+0 ;; esac while :; do if [ -f $copy_stop ]; then echo "\tstop file" rm $copy_stop exit 1 fi if [ -f "$src" ]; then if [ "$(find $src -size ${size}c)" ]; then echo "\tfound" cp $src $dest exit 0 else echo "\ttoo small" fi fi echo "\tsleeping $seconds" sleep $seconds done Kenji Morishige wrote: > I've got 2 identical servers configured exactly the same way, except for some > minor differences for the WAL logging directories. I have both machines set up > as a NFS server and client, so that the WAL archive gets written out to the > local filesystem of the backup machine depending on which role the machine is > currently configured for. > > I've been able to get the backup server syncronized by using the recover.conf > file as described in the documenation, but I can't seem to write a generic shell > script that will keep the warm-backup in a continously syncronizing mode. It > always stops and renames the recover.conf to recover.done. > > I've tried to write an alternate restore command as follows: > > #!/usr/local/bin/bash > if [ -e /export/raid/pgsql/recovery.stop ]; then > exit 1 > fi > if [ -e $1 ]; then > `/bin/cp $1 $2` > fi > sleep 5 > exit 0 > > The documenation says that it should return 0 only if it is successfull. My > understanding is that the recovery script should continuously try to copy the > archived data to the WAL directory so that the WARM-BACKUP server can > syncronize. I'd like to have the WARM-BACKUP always be only a few minutes > behind in syncronization from the PRIMARY without human intervention. I can > write a cronjob to clean out the WAL archive directory accordingly. > > I would be extremely gratefull for any assistance from anyone with a similar > configuration. I must be confused by how the restore_command is supposed to > work. > > Sincerely, > Kenji > > ---------------------------(end of broadcast)--------------------------- > TIP 2: Don't 'kill -9' the postmaster > >
pgsql-admin by date: