ساده ترین راه برای این منظور استفاده از اسکریپت نویسی است، مثلا از اسکریپت زیر برای پشتیبان گیری روزانه در طول هفت روز هفته استفاده کرد:
در مسیر : etc/cron.daily/postgres.cron
کد:
#!/bin/bash
BACKUPDAY=7
DBNAME=dbtest1
BACKUPFILE=/var/lib/pgsql/backups/$DBNAME`/bin/date '+%Y%m%d'`
# Vacuum cleaner
su - postgres -c "/usr/bin/vacuumdb --analyze $DBNAME"
# Backup
/bin/rm -f $BACKUPFILE
su - postgres -c "/usr/bin/pg_dump $DBNAME > $BACKUPFILE"
# Compress a backup file
/bin/rm -f $BACKUPFILE.gz
su - postgres -c "/usr/bin/gzip $BACKUPFILE"
# Remove old file
find /var/lib/pgsql/backups -mtime +$BACKUPDAY -exec rm -f {} \;
حال با استفاده از دستور ذیل از تمامی دیتابیس ها پشتیبان می گیریم:
کد:
$ pg_dumpall > backup_file_name
برای بازیابی اطلاعات هم چنین عمل می کنیم:
کد:
$ createdb dbname
$ psql -e dbname < backup_file_name