pg_dump

Name

pg_dump  --  Postgres データベースを スクリプトファイルに抽出する。

Synopsis

pg_dump [ dbname ]
pg_dump [ -h host ] [ -p port ]
    [ -t table ]
    [ -a ] [ -c ] [ -d ] [ -D ] [ -i ] [ -n ] [ -N ]
    [ -o ] [ -s ] [ -u ] [ -v ] [ -x ]
    [ dbname ]
  

入力

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

dbname

抽出されるデータベース名を指定します。 デフォルトの dbname は、 環境変数 USER の値です。

-a

データだけを抽出し、スキーマ (定義)は除きます。

-c

作成前に、スキーマを排除します。

-d

データを正しい挿入文として書き出します。

-D

データを属性名付きの挿入文として 書き出します。

-i

pg_dump とデータベースサーバと の間のバージョンの不整合を無視します。 pg_dump はシステムカタログに関 して多くのことを知らなければなりませんので、あるバージョン の pg_dump は対応するバージョン のデータベースサーバとのみうまく動作するように作成されてい ます。 このバージョンチェックを無視する必要がある場合、このオプ ションを使用してください。(また、これにより pg_dump が失敗したとしても、知ら なかったとはいわないで下さい。)

-n

まったく必要が無い場合は、識別子の前後に付ける二重引用符 の出力を行いません。 これにより、もし予約語が識別子として使われている場合、 書き出されたデータを読み込む場合に問題を引き起こすことが あります。 これは v6.4 以前の pg_dump のデフォルトの動作でした。

-N

識別子の前後に二重引用符を付記します。 これが、デフォルトです。

-o

すべてのテーブルのオブジェクトID (OIDs) を書き出します。

-s

データを含まない、スキーマ (定義) だけを書き出します。

-t table

table として 指定されたデータだけを書き出します。

-u

パスワード認証を使います。ユーザ名とパスワードを 尋ねられます。

-v

冗長メッセージモードを指定します。

-x

アクセス制御リスト (grant/revoke コマンド) と テーブルの所有権に関する情報の書き出しを行いません。

pg_dump は、またコマンドライン引数 として以下の接続パラメータも受け付けます。

-h host

postmaster が動作しているホスト名 を指定します。デフォルトは、IP接続ではなくローカル Unix ドメインソケットを使用します。

-p port

postmaster が接続を監視している インターネット TCP/IP ポート、あるいは ローカル Unix ドメインソケットファイル拡張子を指定します。 ポート番号は 5432 か、あるいは (もし設定されている場合は) PGPORT 環境変数の値をデフォルトとします。

-u

パスワード認証を使用します。 usernamepassword を 尋ねられます。

出力

pg_dump は、ファイルを作成するか、 あるいは stdout に書き出します。

Connection to database 'template1' failed. connectDB() failed: Is the postmaster running and accepting connections at 'UNIX Socket' on port 'port'?

pg_dump は、指定されたホストと ポート上にある postmaster に 接続することができませんでした。このメッセージが表示された 場合、postmaster が正しいホスト上 で、指定した正しいポートで動作していることを確認してください。 もし認証システムを使用しているサイトの場合は、必要な認証資格 を持っているか確認してください

Connection to database 'dbname' failed. FATAL 1: SetUserId: user 'username' is not in 'pg_shadow'

リレーション pg_shadow に有効な登録が されておらず、そして Postgres に アクセスすることを許されていません。 Postgres 管理者に連絡を取って ください。

dumpSequence(table): SELECT failed

データベースを読む権限がありません。 Postgres サイト管理者に連絡を 取ってください。

Note: pg_dump は、内部的には SELECT 文を実行します。もし、 pg_dump の使用時に問題がある場合 は、例えば psql を使用して、 使用しているデータベースから情報を選択することができることを 確認してください。

説明

pg_dump は、 Postgres データベースを、 問い合わせコマンドを含めてスクリプトファイルの中へ 書き出すユーティリティです。 スクリプトファイルはテキスト形式で、データベースを再構築する ために使うことができます。そして、それは他のホストや、別の アーキテクチャ上にも再構築することもできます。 pg_dump は、ユーザが定義したすべて のデータ型、関数、テーブル、インデックス、集約関数と演算子 を再度生成するために必要な問い合わせを生成します。 加えて、すべてのデータはテキスト書式で書き出されるため、 編集の為のツールの中にインポートするのと同じぐらい、 簡単に再びコピーされることができるようになっています。

pg_dump は、 ある Postgres から、別のインストレーションにデータを移動する際にデータベース の内容を書き出せるので便利です。 pg_dump を使用した後、 出力されたスクリプトファイルに警告があるかどうか、特に、以下 の制限事項に書かれていることを考慮して、調査を行なって下さい。

注意

pg_dump には、幾つかの制限事項が あります。 これらの制限事項は、おおむねシステムカタログからある特定 のメタ情報を抽出することの困難さによるものです。

使用法

ユーザ名と同じデータベースを書き出す場合、以下のようにします。

% pg_dump > db.out
   

このデータベースを読み込むには以下のようにします。

% psql -e database < db.out