以下は抜粋である。
上で説明した手法はデータベースクラスタすべてをバックアップする際に扱いにくく不適切です。 この理由で pg_dumpall プログラムが提供されています。 pg_dumpall は指定されたクラスタの各データベースのバックアップを行い、ユーザーやグループなどのクラスタ全体にわたるデータの状態が確実に保たれるようにします。 pg_dumpall の呼出し手順は単に
pg_dumpall > outfile
です。ダンプの結果は psql でリストアできます。
psql template1 < infile
(実際、開始時に任意の既存のデータベース名を指定することができますが、空のクラスタ内に再ロードする場合は、template1が唯一の選択肢です。) ユーザとグループの情報をリストアしなければならないので、pg_dumpallのダンプをリストアする時には、データベーススーパーユーザのアクセス権限を確実に必要とします。
まず、対象DBを落とす。
$ psql -l $ pg_dump dbname > /var/tmp/dbname.backup
空っぽのdbを作成し、そこにリストアする。
$ psql -l $ createdb dbname ($ createdb --owner=dbuser --encoding=EUC_JP dbname) $ psql -e -f /var/tmp/dbanme.backup dbname $ psql -l
注意点は以下の通り。