pg_dump

pg_dumpは、PostgreSQLデータベースをスクリプトファイルまたは他のアーカイブファイルへ抽出するコマンドである。

構文

pg_dump [connection-options] [options] [dbname]
dbname

ダンプするデータベース名を指定する。データベース名を指定しなかった場合は、環境変数PGDATABASEに設定されたデータベース名が使われる。

connection-optionsにはデータベース接続オプションを指定できる。

-h host
-host=host

PostgreSQLサーバのホスト名を指定する。ホスト名を指定しなかった場合は、環境変数PGHOSTに設定されたホスト名が使われる。

-p port
-port=port

PostgreSQLサーバのポート番号を指定する。

-U username
-username=username

データベース接続ユーザ名を指定する。

optionsには次のオプションを指定できる。

-F format
--fomrat=format

ファイル形式を指定する。

format 説明
p プレーンテキスト形式(SQL文のスクリプト)で出力する。(デフォルト)
この形式で出力した場合、リストアはpsqlコマンドを使用する。
plain
c カスタム形式アーカイブを出力する。
この形式で出力した場合、リストアはpg_restoreコマンドを使用する。
custom
t tar形式のアーカイブを出力する。
この形式で出力した場合、リストアはpg_restoreコマンドを使用する。
tar
-n schema
--schema=schema

指定したスキーマのみをダンプする。

サンプル

データベースのバックアップファイルをプレーンテキスト形式で作成する。

pg_dump -U marina exampledb > backup.sql
pg_dump -Fp -U marina exampledb > backup.sql
pg_dump --format=plain -U marina exampledb > backup.sql

データベースのバックアップファイルをカスタム形式で作成する。

pg_dump -Fc -U marina exampledb > backup.dmp
pg_dump --format=custom -U marina exampledb > backup.dmp

データベースのバックアップファイルをtar形式で作成する。

pg_dump -Ft -U marina exampledb > backup.tar
pg_dump --format=tar -U marina exampledb > backup.tar

関連記事