PostgreSQLダンプしたい時あるんですわ

PostgreSQLダンプしたい時あるんですわ

コジマです。

データベースのダンプファイルほしいってときありますよね。
ポスグレはまあまあ使えるので、ちょっと書こうかなって思った次第です。

用途としてはバックアップを取ることでDBイかれちゃった時に切り戻しを可能にするものですね。

2つやり方あるんですけども、ダンプファイルを

  1. テキスト形式で出力する
  2. アーカイブ形式で出力する

とあります。
pg_dumpコマンドを使うんですが、オプションが変わります。
最後にまとめます。

1:テキスト形式

ダンプファイル作成

リストア方法

一回スキーマを削除してやる必要があるんですね。
CASCADEを付けてスキーマに含まれるテーブルを全て削除します。
そうしないと変にデータが残ってうまく行かなくなります。

テキスト形式だと作成されたファイルの中身を確認できるから多少メンテもできて便利です。

2:アーカイブ形式で出力する

ダンプファイル作成

リストア方法

コマンド一行で済んで楽ですね。
しかしダンプファイルは平文ではないために中身の確認はできないです。

-Fcというコマンドでファイルをアーカイブ形式にします。
-Ftとするとtarにできるようですが、やったことないので紹介にとどめます。

-cを入れるとデータベースオブジェクトの削除を行うことができます。
テキスト形式で紹介した手順でも使用可能かとは思いますが、私自身使用したことがないので
-cを使用しない手順を紹介しました。

まとめ

簡単にまとめてみます。

 (比較) テキスト形式 アーカイブ形式
手順 多い 少ない
中身の確認 できる できない
メリット ファイルの中身を確認できる。編集も可能。 作業ミスのリスクが低い。
デメリット 手順が多い。作業ミスのリスクあり。 ファイルの中身を確認できない。
使いどき(主観) データの解析を行う時 プログラムで自動取得する時

上記の通り
私は手動でデータのダンプファイルを取得してデータの解析や試験環境にデータを移行する時にはテキスト形式のダンプファイルを取得し、
プログラムに組み込んで自動でバックアップを定期的に取得する時はアーカイブ形式のダンプファイルを取得するように使い分けてます。

ちなみにPostgreSQLは「ポストグレスキューエル」って読むらしいですよ!
私は気を抜くと「ポストグレエスキューエル」って言っちゃいそうになるんで、「ポスグレ」って言ってごまかしてます←

以上、コジマでした。

PostgreSQLカテゴリの最新記事