Thread: pg_dump: aborting because of server version mismatch

pg_dump: aborting because of server version mismatch

From
Mitesh Shah
Date:
Hi,
I am trying to create a daily backup cron script but it fails with an error as below:

Any pointers to resolve this will be greatly appreciated.

Thanks,
Mitesh Shah

(1) Error:
bash-3.2$ sh pg_backup_rotated_orig.sh 
Making backup directory in /Users/miteshshah/Documents/2012-05-02-daily/
-e 

Performing full backups
-e --------------------------------------------

Plain backup of mitesh
pg_dump: server version: 9.1.2; pg_dump version: 9.0.5
pg_dump: aborting because of server version mismatch
-e 
All database backups complete!



(2.1)    /Users/miteshshah/Desktop/pg_backup.config file:
#############################
## POSTGRESQL BACKUP CONFIG ##
##############################
# hostname to adhere to pg_hba policies.
HOSTNAME= <host>

# username to connect to database as.
USERNAME=<user>

# Database name
DATABASE=<database>

# This dir will be created if it doesn't exist.  This must be writable by the user the script is
# running as.
BACKUP_DIR=<backup_dir>

# SCRIPTPATH
SCRIPTPATH=<path>

# Will produce a custom-format backup if set to "yes"
ENABLE_CUSTOM_BACKUPS=yes

# Will produce a gzipped plain-format backup if set to "yes"
ENABLE_PLAIN_BACKUPS=yes


#### SETTINGS FOR ROTATED BACKUPS ####

# Which day to take the weekly backup from (1-7 = Monday-Sunday)
DAY_OF_WEEK_TO_KEEP=5

# Number of days to keep daily backups
DAYS_TO_KEEP=7

# How many weeks to keep weekly backups
WEEKS_TO_KEEP=5

######################################


(2.2)  /Users/miteshshah/Desktop/pg_backup_rotated_orig.sh
#!/bin/bash

###########################
####### LOAD CONFIG #######
###########################

source /Users/miteshshah/Desktop/pg_backup.config


###########################
#### START THE BACKUPS ####
###########################

function perform_backups()
{
        SUFFIX=$1
        FINAL_BACKUP_DIR=$BACKUP_DIR"`date +\%Y-\%m-\%d`$SUFFIX/"

        echo "Making backup directory in $FINAL_BACKUP_DIR"

        if ! mkdir -p $FINAL_BACKUP_DIR; then
                echo "Cannot create backup directory in $FINAL_BACKUP_DIR. Go and fix it!"
                exit 1;
        fi;


        ###########################
        ###### FULL BACKUPS #######
        ###########################

        echo -e "\n\nPerforming full backups"
        echo -e "--------------------------------------------\n"



                if [ $ENABLE_PLAIN_BACKUPS = "yes" ]
                then
                        echo "Plain backup of $DATABASE"

                        if ! pg_dump -Fp -h "$HOSTNAME" -U "$USERNAME" "$DATABASE" | gzip > $FINAL_BACKUP_DIR"$DATABASE".sql.gz.in_progress; then
                                echo "[!!ERROR!!] Failed to produce plain backup database $DATABASE"
                        else
                                mv $FINAL_BACKUP_DIR"$DATABASE".sql.gz.in_progress $FINAL_BACKUP_DIR"$DATABASE".sql.gz
                        fi
                fi

                if [ $ENABLE_CUSTOM_BACKUPS = "yes" ]
                then
                        echo "Custom backup of $DATABASE"

                        if ! pg_dump -Fc -h "$HOSTNAME" -U "$USERNAME" "$DATABASE" -f $FINAL_BACKUP_DIR"$DATABASE".custom.in_progress; then
                                echo "[!!ERROR!!] Failed to produce custom backup database $DATABASE"
                        else
                                mv $FINAL_BACKUP_DIR"$DATABASE".custom.in_progress $FINAL_BACKUP_DIR"$DATABASE".custom
                        fi
                fi



        echo -e "\nAll database backups complete!"
}

# DAILY BACKUPS

# Delete daily backups 7 days old or more
find $BACKUP_DIR -maxdepth 1 -mtime +$DAYS_TO_KEEP -name "*-daily" -exec rm -rf '{}' ';'

Re: pg_dump: aborting because of server version mismatch

From
"Kevin Grittner"
Date:
Mitesh Shah <mitesh.shah@stripes39.com> wrote:

> *pg_dump: server version: 9.1.2; pg_dump version: 9.0.5*
> *pg_dump: aborting because of server version mismatch*

This is not a bug.  Use a version of pg_dump which is at least as
new as the server.  The older version of pg_dump is unlikely to be
able to recognize everything in the newer server,

-Kevin

Re: [seapug] Re: pg_dump: aborting because of server version mismatchT

From
Robert Bernier
Date:
There used to be a switch in pg_dump that would disable the version, you can
even see that's in the man page. However, it is not reccommended and the most
recent versions have fully deprecated the switch. Technically speaking that
means that you can even use an older version of pg_dump and it wouldn't
generate any errors although I wouldn't want to test it out on important stuff.

Robert Bernier



On Wednesday, May 02, 2012 02:53:53 pm Kevin Grittner wrote:
> Mitesh Shah <mitesh.shah@stripes39.com> wrote:
> > *pg_dump: server version: 9.1.2; pg_dump version: 9.0.5*
> > *pg_dump: aborting because of server version mismatch*
>
> This is not a bug.  Use a version of pg_dump which is at least as
> new as the server.  The older version of pg_dump is unlikely to be
> able to recognize everything in the newer server,
>
> -Kevin

Re: [SQL] pg_dump: aborting because of server version mismatch

From
Adrian Klaver
Date:
On 05/02/2012 12:55 PM, Mitesh Shah wrote:
> Hi,
> I am trying to create a daily backup cron script but it fails with an
> error as below:
>
> Any pointers to resolve this will be greatly appreciated.
>
> Thanks,
> Mitesh Shah
> mitesh.shah@stripes39.com <mailto:mitesh.shah@stripes39.com>
>
> *(1) Error:*
> bash-3.2$ sh pg_backup_rotated_orig.sh
> Making backup directory in /Users/miteshshah/Documents/2012-05-02-daily/
> -e
>
> Performing full backups
> -e --------------------------------------------
>
> Plain backup of mitesh
> *pg_dump: server version: 9.1.2; pg_dump version: 9.0.5*

The problem is you are using an older version of pg_dump to dump a newer
database. That will not work.
Possible solution:
You are running via cron. Cron has its own environment. Unless you are
explicit in your pathing you can get surprising results, see above.
Find the path to the 9.1.2 version of pg_dump and use that absolute path
in your script.

> *pg_dump: aborting because of server version mismatch*
> -e
> All database backups complete!
>

--
Adrian Klaver
adrian.klaver@gmail.com