Postgresqlバックアップ&リストア

■基本
バックアップ
pg_dump [DbName] > [BackUpFileName]

リストア
psql -e -f [BackUpFileName] [RestoreDbName]

■ラージオブジェクトを含む場合
バックアップ
pg_dump -b -F c [DbName] > [BackUpFileName]

リストア
pg_restore -d [RestoreDbName] [BackUpFileName]

※備考
DBへのアクセス権の問題でpostgresしか許可されていない、かつ、シェルスクリプトからバックアップを実行したい場合、postgresでシェルスクリプト(Bash)を実行します。しかし、その場合環境変数BASH_ENVのファイルを読みにいく。BASH_ENVに格納されているファイルはおおむねpostgres以外所有のファイルでエラーになるので以下の様に実行する。

su – postgres -c [bashスクリプト]

(スクリプトの中身)
#!/bin/bash
pg_dump -b -F c [DbName] > [BackUpFileName]