把 PostgreSQL backup/restore 會用到的 command 以及參考資料作個整理:

環境建制 (安裝):
$ sudo apt-get install apache2 php5 libapache2-mod-php5 libapache2-mod-auth-pgsql php5-pgsql phppgadmin postgresql-8.3

切換成 postgres 的身份執行:
$ sudo -u postgres psql template1

修改 postgres 的密碼:
template1=# alter user postgres with password ‘PASSWORD’;

建立 pg_root 使用者 (平日存取用途):
template1=# create user pg_root with password ‘PASSWORD’ createuser;

全伺服器備份:
$ pg_dumpall -U pg_root > dump-all.sql
$ pg_dumpall -U postgres > dump-all.sql

使用 postgres 登入之後,還原全伺服器:
$ psql -U postgres < dump-all.sql

單一備份資料庫:
$ pg_dump cbeta -U pg_root > cbeta-dump.sql
$ pg_dump cbeta -U postgres > cbeta-dump.sql

使用 postgres 登入之後,單一資料庫還原:
$ psql -d cbeta -U postgres < cbeta-dump.sql

在 postgres 帳戶家目錄建立 .pgpass
$ cat > .pgpass
localhost:5432:database:username:password
[Ctrl+D]
$ chmod 600 .pgpass

使用 postgres 使用者於 Crontab 中自動備份資料庫:
# vi /etc/crontab
sudo -u postgres pg_dump cbeta > cbeta-dump.sql
sudo -u postgres pg_dumpall > dump-all.sql

參考資源: