Cooking with UNIX/Linux
Cooking with UNIX/Linux > PostgreSQL backup

PostgreSQL backup

POSTGRESQL DUMP RECIPE by Frederik Dannemare

# Dumping a single database
/usr/local/postgresql/bin/pg_dump -C -f pg_dump.sql -o -v some_db

# Dumping all databases
/usr/local/postgresql/bin/pg_dumpall > /opt/database/dumpall.sql

# Restoring all databases
/usr/local/postgresql/bin/psql -f /opt/database/dumpall.sql template1


# Very simple backup script to be run from cron:

###################################################
#!/bin/sh

DATE=`date +%y%m%d-%H%M`

echo "Beginning to dump all databases..."
DUMP_DIR=/opt/database/
DUMP_FILE=psqldump-$DATE.sql
touch $DUMP_DIR$DUMP_FILE
chmod 600 $DUMP_DIR$DUMP_FILE
/usr/local/postgresql/bin/pg_dumpall -U some_user -h localhost \
    -p some_port > $DUMP_DIR$DUMP_FILE
gzip $DUMP_DIR$DUMP_FILE
echo "All databases have been dumped to $DUMP_DIR$DUMP_FILE.gz"

exit 0
###################################################