Postgresのリストア

参考URL

以下は抜粋である。

方法

pg_dumpall の使用

上で説明した手法はデータベースクラスタすべてをバックアップする際に扱いにくく不適切です。 この理由で 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

注意点は以下の通り。