برای بکاپگیری از تمام اطلاعات پوستگرس از دستور pq_dumpall می توان استفاده کرد یا به ازای هر یک از دیتابیس های موجود در پوستگرس دستور pq_dump را اجرا نمود و فقط از دیتابیس مورد نظر به صورت زیر بکاپ گرفت:
$ pg_dump -h host -U username -p port dbname > db.sql
$ Pg_dumpall -h host -U username -p port -f db.sql
حال اگر از تمام اطاعات پوستگرس با Pg_dumpall بکاپ گرفته شده با اجرا bash script زیر می توان بکاپ یک دیتابیس خاص را استخراج کرد:
$ cat pgdump.sh
#!/bin/bash
[ $# -lt 2 ] && { echo "Usage: $0 <postgresql dump> <dbname>"; exit 1; }
sed "/connect.*$2/,\$!d" $1 | sed "/PostgreSQL database dump complete/,\$d"
$ ./pgdump.sh db.sql databasename >> backup.sql
بعد از اتمام دستور بالا می توان بکاپ موجود را در همان دیتابس قبلی با دستور زیر بازیابی نمود:
$ psql -U username -d dbname -fbackup
.sql -hhost
-p port
و اگر نیاز به بازیابی بکاپ در دیتابیس جدید باشد ابتدا خط اول موجود در backup.sql را پاک کرده و دستور زیر را اجرا نمایید ( C- برای ساخت دیتابیس در صورت عدم وجود می باشد):
$ cat backup.sql
\connect old-dbname
...
$ psql -U username -C -d new_db -fbackup
.sql -hhost
-p port