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

作成日: 2013/10/23

Linuxサーバ管理

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

トップページLinuxサーバ管理 > PostgreSQLのバックアップ方式まとめ
このエントリーをはてなブックマークに追加

概要

解説

 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インスタンスを起動したままで実行するバックアップのことです。

データベースクラスタ

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

データベース

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

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会

■■■ 当サイトは Internet Explorer 11 と Mozilla Firefox 43 で動作確認済みです。 ■■■