pg_dumpall

Name

pg_dumpall --  スクリプトファイルへのすべてのデータベースの抽出

Synopsis

pg_dumpall [-c | --clean] [-h host] [-p port] [-g | --globals-only]

説明

pg_dumpall はクラスタの全ての Postgres データベースを一つのスクリプトファイルに書き出す ("ダンプする")ための機能です。スクリプトファイルには データベースをリストアするための psql への入力値として使うことができる SQL コマンドが含まれています。 これはクラスタのそれぞれのデータベースの pg_dump を呼び出すことによって行なわれます。 pg_dumpall は更に、全てのデータベースに 共通するグローバルオブジェクトもダンプします。 (pg_dump はこれらのオブジェクトを保存 しません。)これは、現時点ではデータベースユーザとグループ に関する情報を含んでいます。

したがって、pg_dumpall は データベースのバックアップをとるための統合解決法です。

pg_dumpall は全てのデータベースから テーブルを読みこむため、完全なダンプを作成するためには データベーススーパーユーザとして接続しなければならないでしょう。 さらに、ユーザとグループを追加することを許可されるために 保存されたスクリプトを実行するため、そしてデータベースを 作成するためにはスーパーユーザ権限が必要になるでしょう。

SQL スクリプトは標準出力に書かれます。それをファイルにリダイレクト するためには shell 演算子を使います。

オプション

pg_dumpall は以下のコマンドライン 引数を受けつけます。

-c, --clean

スキーマを作る前にデータベースを掃除(削除)します。

-h host

データベースサーバが稼働しているマシンのホスト名を指定します。 もしホスト名がスラッシュ(/)ではじまる場合は、Unix ドメイン ソケット用のディレクトリとして使われます。設定されて いる場合、デフォルトは環境変数 PGHOST からとられますが、そうでない場合は Unix ドメインソケット 接続を試みます。

-p port

サーバが監視しているポート番号です。デフォルトは、 設定されている場合は環境変数 PGPORT、 またはコンパイルされているデフォルトになります。

-g, --globals-only

グローバルオブジェクト(ユーザとグループ)のみを ダンプし、データベースはダンプしません。

その他すべてのコマンドラインパラメータは基になる pg_dump の呼び出しに渡されます。 これは出力フォーマットのいくつかの側面を管理するために 便利ですが、-f-t、そして dbname のようないくつかの オプションは避けるべきです。

使用方法

書きは全てのデータベースをダンプします。

$ pg_dumpall > db.out

このデータベースをリロードするためには、例えば下記を使います。

$ psql -f db.out template1
(ここではどのデータベースに接続するかということは重要ではありません。 なぜなら pg_dumpall が作成する スクリプトファイルは、保存されたデータベースの作成または接続 をするのにふさわしいコマンドを含んでいるからです。)

参照

pg_dump psql。 可能なエラー条件についての詳細は上記をチェックして下さい。