OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

PostgreSQLのバックアップ方式まとめ

カテゴリ:OSSセットアップ | ソフトウェア:PostgreSQL | タグ:
最終更新日:2020/12/30 | 公開日:2013/10/23

目次

概要

 PostgreSQLでは様々なバックアップ方式を実装しています。 それぞれの特徴や実行方法についてまとめます。

構成

サーバ構成

OSバージョン

Red Hat Enterprise Linux 5.9 x86_64

パッケージ一覧

postgresql90-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-libs-9.0.8-1PGDG.rhel6.x86_64.rpm
postgresql90-server-9.0.8-1PGDG.rhel6.x86_64.rpm

バックアップ方式

まとめ

 バックアップ方式毎の特徴を以下にまとめます。

物理/論理オンライン
/オフライン
コマンド取得対象取得形式リストア方法
物理
バックアップ
オフライン
バックアップ
cp | tarデータベースクラスタOSファイルcp | tar
論理
バックアップ
オンライン
バックアップ
pg_dumpデータベーススクリプト形式psql
カスタム形式pg_restore
tar形式pg_restore
pg_dumpallデータベースクラスタスクリプト形式psql

用語の定義

物理バックアップ

 データの内容を意識せずに取得するバックアップです。 通常はOS(LinuxやWindows)のファイルシステム上のファイルとしてバップアップします。 そのファイルの中のデータがどうなっているかは意識しません。 そのため異なるバージョンのPostgreSQLや異なるDBMSにはデータをリストアすることはできません。

論理バックアップ

 データの内容を意識したバックアップです。データベースの内容をSQL形式でバックアップします。 バックアップデータはcreate文やinsert文の羅列になります。 そのため異なるバージョンのPostgreSQLや異なるDBMSにもデータをリストアすることができます。 論理バックアップでは不要領域やindexのデータが含まれないため、物理バックアップに比べて 一般的にデータサイズが小さくなります。

オフラインバックアップ

 PostgreSQLインスタンスを停止して実行するバックアップのことです。

オンラインバックアップ

 PostgreSQLインスタンスを起動したままで実行するバックアップのことです。

データベースクラスタ

 複数のデータベース、グローバルオブジェクト(ロールやテーブルスペース) などデータベースクラスタ全体を対象にバックアップします。

データベース

 データベースクラスタ内のデータベースを対象にバックアップします。 ロールやテーブルスペースなどのグローバルオブジェクトは個別のデータベースと 紐付くものではないため、データベース単位のバックアップでは取得されません。 リストアする際には、先にロールなどの作成が必要となります。