PostgreSQLのバックアップ&リストア手法その1:使えば分かるPostgreSQL運用&チューニング(4)(1/3 ページ)
データベースの運用において、まず考えなければいけないのはバックアップです。ハードウェアに障害が発生したときはもちろんですが、マシンを変更する場合やPostgreSQLのメジャーバージョンアップを行う場合にもバックアップ、リストアは必要になります。そこで本稿では、バックアップとリストア方法について説明します。
バックアップ手法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_dump、pg_dumpall があります。また、pg_dumpall で作成したアーカイブのリストアにはpg_restore が用意されています。
データベースのバックアップを作成:pg_dump
PostgreSQLにはpg_dumpというデータベースをバックアップするコマンドがあります。pg_dump を利用すると、データベースを運用中であってもバックアップを作成できます。
pg_dumpの内部動作
pg_dump の内部動作としては、トランザクションブロック内でSELECT文を発行し、取得したデータを出力形式に合わせて整形したうえで標準出力に出力します。
そのため、ほかのユーザーによるデータベースへの読み書きをブロックすることなく、バックアップ開始時点における一貫性のあるバックアップを取得することが可能です。
次ページではpg_dumpの出力形式や書式を見ていきます。
Copyright © ITmedia, Inc. All Rights Reserved.