27
30

More than 5 years have passed since last update.

PostgreSQLのpg_dumpでスキーマのみバックアップする方法

Last updated at Posted at 2015-06-10

pg_dumpを利用してバックアップをする場合、バックアップ時間の短縮・バックアップファイル容量の削減のために、Temporary的に利用するテーブルはスキーマのみをバックアップしたい場合がある。

その場合は、下記のように2回にコマンドを分けることでできる。(一回のコマンドではできないはず)

1.データ・スキーマ両方取得したいテーブル群をdump

「-T」を指定することで、特定のテーブルをdump対象から除外できるので、tmp系以外をdumpする。(ワイルドカード指定可能)

pg_dump -U [ユーザID] -d [DB名] -h [host名] -T 'tmp*' > dump.sql

※ スキーマのみ取得したいテーブルは「tmp」から始まるものとする。

2.スキーマのみ取得したいテーブル群をdump

「-t」を指定することで、特定のテーブルのみをdump対象にできる。
さらに、「-s」を指定することで、スキーマのみをdump対象にできる。ここでtmp系のみをdumpする。

その際「>>」で先ほど出力したファイルに追記出力する。

pg_dump -U [ユーザID] -d [DB名] -h [host名] -t 'tmp*' -s >> dump.sql

これでtmp系テーブルはスキーマのみ、それ以外のテーブルはデータを含んだ形のバックアップファイルが作成できる。

※ 上記手順は、どちらが先でも問題なし

27
30
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
30