pg_dump PostgreSQL復元

データの退避・復旧

http://dreamer-site.net/modules/bwiki/index.php?Fedora%20Core%204%20PostgreSQL

データの退避・復旧方法 †
※下記に記載する内容はあくまで私個人の環境によるものです。すべての動作を補償するものではありません。
また作業で生じた損害等について一切責任を負いかねます。ご了承下さい。
各自必要に応じて関連ドキュメントで自分にあった方法を確認してください。


新しい7.4.xをインストール作業する前に下記の方法で必ずデータを退避(バックアップ)してください。
作業はpostgresユーザで行います

 $ su - postgres
 $ pg_dumpall > backup.pgsql
次に既存のPostgreSQLディレクトリは別名にして退避させます。
(インストール後にinitdbを行う際に /usr/local/pgsql/data にデータがあると初期化失敗するため)
作業はrootユーザで行います

 $ su -
 password : (root passwordを入力)
 $ mv /usr/local/pgsql /usr/local/pgsql.old
以上で新規にPostgreSQLのインストール作業を開始してください。 
新しい7.4.xをインストール作業を終え、退避させたデータを復旧させます。
initdbを行ってからpostgresを起動してください。
作業はpostgresユーザで行います

 $ su - postgres
 $ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
 $ /etc/rc.d/init.d/postgresql start
 $ psql -f backup.pgsql template1

pg_dump

http://www.sraoss.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/app-pgdump.html

スキーマのみ

 -s スキーマ(定義)のみをダンプし、データはしません。

特定のテーブルのみ

 -t table table のデータのみを ダンプします

置換する場合などに

 -c 最初に、オブジェクトを削除するコマンドを書き出す (dropしてからcreate)。-C とは排他。プレーンテキスト時のみ