【PostgreSQL】バックアップとリストア|スクリプト形式とアーカイブ形式

プログラマのメモ帳

この記事では、PostgreSQLを使用したバックアップとリストアについてまとめています。

紹介しているのは次の項目です。
・ファイル形式(スクリプト形式とアーカイブ形式)とリストアの関係
・pg_dumpとpg_dumpallの違い
・具体的なバックアップとリストアの実行例

スポンサーリンク

ファイル形式とリストアの関係

PostgreSQLでは、バックアップをダンプする形式として
・スクリプト形式(テキストファイル)
・アーカイブ形式
を使用することが出来ます。

ダンプを作成するには、pg_dump、pg_dumpallを使用しますが、pg_dumpallではスクリプト形式でしかダンプできません。

そして、ダンプしたファイル形式によってリストアする方法が異なります。

ダンプ形式リストアコマンド
スクリプト形式psql
アーカイブ形式pg_restore

pg_dumpとpg_dumpallの違い

PostgreSQLでバックアップとしてダンプファイルを作成する際に使用できるのは、pg_dumpとpg_dumpallです。

この2つについて簡単に整理しておきます。

pg_dump

pg_dumpでは、データベースのテーブルのみをダンプしたり、スクリプト形式、アーカイブ形式のどちらでもダンプできるなど融通が利きます。

ダンプするファイル形式は -Fオプションで指定できます。
-Fp : スクリプト形式(default)
-Fc : カスタム形式アーカイブ

pg_dumpall

pg_dumpallの特徴は次の2つです。

1 ダンプ形式はスクリプト形式のみ。
2 ロールやテーブル空間など、クラスタ内の全データベースに共通のグローバルオブジェクトもダンプできる。

具体的なバックアップとリストアの実行例

今回は例として、次のデータベースとテーブルを使用します。
データベース名:ubuntu
テーブル名:test_t

実行例(pg_dump、pg_restore)

スクリプト形式でのダンプ、リストア

# 特定のテーブルをスクリプト形式でダンプする
pg_dump -t test_t  ubuntu > /home/ubuntu/db_dump/test_t_txt.dump

# スクリプト形式をリストア(事前にテーブルを削除しておく必要がある)
psql ubuntu < /home/ubuntu/db_dump/test_t_txt.dump

アーカイブ形式でのダンプ、リストア

# 特定のテーブルをアーカイブ形式でダンプする
pg_dump -Fc -t test_t  ubuntu > /home/ubuntu/db_dump/test_t_arc.dump

# アーカイブ形式をリストア
pg_restore -cd ubuntu < /home/ubuntu/db_dump/test_t_arc.dump

実行例(pg_dumpall)

# ダンプ
pg_dumpall > /home/ubuntu/db_dump/dumpall.dump

# リストア
psql -f /home/ubuntu/db_dump/dumpall.dump ubuntu

以上です。参考になればうれしいです。

コメント

タイトルとURLをコピーしました