pg_dumpall はクラスタの全ての Postgres データベースを一つのスクリプトファイルに書き出す ("ダンプする")ための機能です。スクリプトファイルには データベースをリストアするための psql への入力値として使うことができる SQL コマンドが含まれています。 これはクラスタのそれぞれのデータベースの pg_dump を呼び出すことによって行なわれます。 pg_dumpall は更に、全てのデータベースに 共通するグローバルオブジェクトもダンプします。 (pg_dump はこれらのオブジェクトを保存 しません。)これは、現時点ではデータベースユーザとグループ に関する情報を含んでいます。
したがって、pg_dumpall は データベースのバックアップをとるための統合解決法です。
pg_dumpall は全てのデータベースから テーブルを読みこむため、完全なダンプを作成するためには データベーススーパーユーザとして接続しなければならないでしょう。 さらに、ユーザとグループを追加することを許可されるために 保存されたスクリプトを実行するため、そしてデータベースを 作成するためにはスーパーユーザ権限が必要になるでしょう。
SQL スクリプトは標準出力に書かれます。それをファイルにリダイレクト するためには shell 演算子を使います。
pg_dumpall は以下のコマンドライン 引数を受けつけます。
スキーマを作る前にデータベースを掃除(削除)します。
データベースサーバが稼働しているマシンのホスト名を指定します。 もしホスト名がスラッシュ(/)ではじまる場合は、Unix ドメイン ソケット用のディレクトリとして使われます。設定されて いる場合、デフォルトは環境変数 PGHOST からとられますが、そうでない場合は Unix ドメインソケット 接続を試みます。
サーバが監視しているポート番号です。デフォルトは、 設定されている場合は環境変数 PGPORT、 またはコンパイルされているデフォルトになります。
グローバルオブジェクト(ユーザとグループ)のみを ダンプし、データベースはダンプしません。
その他すべてのコマンドラインパラメータは基になる pg_dump の呼び出しに渡されます。 これは出力フォーマットのいくつかの側面を管理するために 便利ですが、-f、 -t、そして dbname のようないくつかの オプションは避けるべきです。