Powered By Blogger

2013年5月9日木曜日

PostgreSQLのバックアップ/リストア

バックアップ

pg_dump データベース名 -b -o -Fc > バックアップファイル名
例)pg_dump hogedb -b -o -Fc > hogedb20130509.pgdmp


  • -b・・・ラージオブジェクトをダンプに含める
  • -o・・・各テーブルのオブジェクト識別子(OID)をデータの一部としてダンプする
  • -Fc・・・custom形式で出力

リストア

データベースごとリストアする
pg_restore -U "データベースユーザ名" -d "データベース名" --no-password -v -F c "バックアップファイル名"
例)pg_restore -U "fugauser" -d "hogedb" --no-password -v -F c "hogedb20130509.pgdmp"
特定のテーブルをリストアする
pg_restore -U "データベースユーザ名" -d "データベース名" --no-password -t "テーブル名" -v -F c -a "バックアップファイル名"
例)pg_restore -U "fugauser" -d "hogedb" --no-password -t "footable" -v -F c -a "hogedb20130509.pgdmp"

特定のテーブルをリストアする際にはまったポイントとしては
テーブル名の大文字小文字。リストアされず困っていたらテーブル名が大文字でした。。

もうひとつ大事なポイントとして、「a」オプションです。
これはリストアする際にデータのみリストアするというもの。スキーマごとリストアする場合、インデックス等が生成されないので注意が必要です。

0 件のコメント: