他のバージョンの文書11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

pg_dumpall

Name

pg_dumpall -- スクリプトファイルへ全ての PostgreSQL データベースを抽出する。

Synopsis

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

説明

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

したがって、pg_dumpall はデータベースのバックアップをとるための統合的な解決法です。しかし、次の制限には注意して下さい。 pg_dump"large objects" をダンプできません。このオブジェクトをテキストファイルにダンプすることができないからです。ラージオブジェクトを含むデータベースがある場合、pg_dump の非テキスト出力モードの1つを使用してダンプしなければなりません。

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

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

オプション

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

-c, --clean

再作成を行なう前にデータベースオブジェクトを掃除(削除)するSQL コマンドを含めます。(このオプションははっきりいって役に立ちません。出力されるスクリプトはそのデータベース自体を作成することを想定しているためです。作成する時に常に空になります。)

-g, --globals-only

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

-h host

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

-p port

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

-U username

指定したユーザとして接続します。

-W

強制的にパスワードの入力を促します。パスワード認証が必要なサーバの場合は自動的に行なわれます。

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

全てのデータベースを書き出す場合、以下のようにします。

$ pg_dumpall > db.out

上記で書き出したデータベースを読み込む場合、以下のようにします。

$ psql -f db.out template1

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

関連項目

pg_dump psql。起こり得るエラー条件についての詳細は上記をチェックして下さい。