PostgreSQLのバックアップ&リストア手法その1使えば分かるPostgreSQL運用&チューニング(4)(1/3 ページ)

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

» 2008年10月24日 00時00分 公開
[北川俊広SRA OSS, Inc.]

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

 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)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|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。