バックアップと復旧

Caution

全てのデータベースは定期的にバックアップされるべきです。 Postgres はファイルシステムの中で それ自身のファイルを管理しますが、データベースのバックアップ の目的に対し、ファイルシステムによるバックアップに依存すること は推奨出来ません。ファイルが使用可能か、 復旧後でも以前との整合性が保たれているかについて、 保証の限りではありません。

Postgres は個別のデータベースを バックアップする pg_dump と、 全てのインストレーションを一括してバックアップする pg_dumpall の二つのユーティリティを 提供しています。

個別のデータベースをバックアップするためには次の命令を使います:

% pg_dump dbname > dbname.pgdump
    
復旧には:
cat dbname.pgdump | psql dbname
    
を使います。

この手法はデータベースを新たな場所に移動し、元のデータベースの 名前を変える時にも利用できます。

大きなデータベース

著者: 1999-06-19 に Hannu Krosing により書かれました。

Postgres はシステムが許容する最大の ファイル容量より大きいテーブルを扱えますので、テーブルをファイルに 落す場合に、システム許容の最大容量より大きくなってしまう問題を 起こす可能性があります。

pg_dump は stdout に書き出すため、 この関連の問題に対処するために一般的な *nix ツールを使用すれば良いでしょう。

言うまでもなくファイル名 (filename)と 出力 pg_dump の内容がデータベース名と 一致しなくても構いません。同時に、この手法はデータベース名を変更 する場合にも用いられるため、復旧されたデータベースに任意の名前を つけることが出来ます。