スラッシュドット    はてなブックマーク  Yahoo!ブックマークに登録  印刷
postgreSQLチューニング 使えば分かるPostgreSQL運用&チューニング(4)

PostgreSQLのバックアップ&リストア手法その1

SRA OSS, Inc.
北川 俊広
2008/10/24
データベースの運用において、まず考えなければいけないのはバックアップです。ハードウェアに障害が発生したときはもちろんですが、マシンを変更する場合やPostgreSQLのメジャーバージョンアップを行う場合にもバックアップ、リストアは必要になります。そこで本稿では、バックアップとリストア方法について説明します。

バックアップ手法3種の特徴

>>> 本連載の前提環境
データベース:PostgreSQL 8.3.1
OS:CentOS 5(Linux kernel 2.6 )
シェル:bash
.CPU:Intel Xeon 3060 2.40GHz
HDD:73.4GBytes/15,000rpm/SAS 16MBytes
RAM:PC2-5300 8GBytes
 PostgreSQLのデータベースをバックアップする手段は、主に3通りあります。

  • PostgreSQLのダンプツールを利用する
  • OSコマンドやサードパーティのバックアップツールを利用する
  • PostgreSQLのPITR(Point In Time Recovery)機能を利用する

 それぞれの特徴を簡単にまとめると表1のようになります。この表の「バックアップファイルのサイズ比」は、同一サイズのデータをバックアップした際のサイズの比較です。 具体的な数値は掲載しませんが、ここで示した法則は汎用的に適用できるでしょう。

(1)PostgreSQLのダンプツール (2)OSコマンド、 バックアップツール (3)PITR
PostgreSQL停止の必要性 なし あり なし
バックアップ・リストアの手順 単純 単純 複雑
リストア後のデータベースの状態 バックアップ
取得時点
バックアップ
取得時点
直前または
任意の時点
マシン変更、メジャーバージョンアップへの利用 可能 不可能 不可能   
バックアップファイルのサイズ比 PostgreSQLのダンプツール<OSコマンド、
バックアップツール<PITR
表1 各バックアップ手段の特徴

 以降、これらの特徴を含めて順に詳しく説明していきます。

(1)PostgreSQLのダンプツールを利用したバックアップ

 PostgreSQLのダンプツールには、pg_dumppg_dumpall があります。また、pg_dumpall で作成したアーカイブのリストアにはpg_restore が用意されています。

データベースのバックアップを作成:pg_dump

 PostgreSQLにはpg_dumpというデータベースをバックアップするコマンドがあります。pg_dump を利用すると、データベースを運用中であってもバックアップを作成できます

pg_dumpの内部動作

 pg_dump の内部動作としては、トランザクションブロック内でSELECT文を発行し、取得したデータを出力形式に合わせて整形したうえで標準出力に出力します。

 そのため、ほかのユーザーによるデータベースへの読み書きをブロックすることなく、バックアップ開始時点における一貫性のあるバックアップを取得することが可能です。

 次ページではpg_dumpの出力形式や書式を見ていきます。

  1/3 次のページへ

Index
使えば分かるPostgreSQL運用&チューニング(3)
PostgreSQLのバックアップ&リストア手法その1
→ Page 1
・バックアップ手法3種の特徴
・(1)PostgreSQLのダンプツールを利用したバックアップ
  データベースのバックアップを作成:pg_dump
    pg_dumpの内部動作
  pg_dumpの出力形式
  Page 2
 データベースクラスタ全体のバックアップを作成:pg_dumpall
    pg_dumpallの内部動作と出力
  pg_dump、pg_dumpallをcronで使う際の注意点
  Page 3
・(2)OSコマンド(rsyncなど)、バックアップツールによるバックアップ
  rsyncによる差分バックアップ

使えば分かるPostgreSQL運用&チューニング
Database Expert フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

スキルアップ/キャリアアップ(JOB@IT)

- PR -
@IT Sepcial
- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Sepcial
ソリューションFLASH