データベースの運用において、まず考えなければいけないのはバックアップです。ハードウェアに障害が発生したときはもちろんですが、マシンを変更する場合やPostgreSQLのメジャーバージョンアップを行う場合にもバックアップ、リストアは必要になります。そこで本稿では、バックアップとリストア方法について説明します。
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
(1)PostgreSQLのダンプツール | (2)OSコマンド、 バックアップツール | (3)PITR | |
---|---|---|---|
PostgreSQL停止の必要性 | なし | あり | なし |
バックアップ・リストアの手順 | 単純 | 単純 | 複雑 |
リストア後のデータベースの状態 | バックアップ 取得時点 |
バックアップ 取得時点 |
直前または 任意の時点 |
マシン変更、メジャーバージョンアップへの利用 | 可能 | 不可能 | 不可能 |
バックアップファイルのサイズ比 | PostgreSQLのダンプツール<OSコマンド、 バックアップツール<PITR |
||
表1 各バックアップ手段の特徴 |
以降、これらの特徴を含めて順に詳しく説明していきます。
PostgreSQLのダンプツールには、pg_dump、pg_dumpall があります。また、pg_dumpall で作成したアーカイブのリストアにはpg_restore が用意されています。
PostgreSQLにはpg_dumpというデータベースをバックアップするコマンドがあります。pg_dump を利用すると、データベースを運用中であってもバックアップを作成できます。
pg_dumpの内部動作
pg_dump の内部動作としては、トランザクションブロック内でSELECT文を発行し、取得したデータを出力形式に合わせて整形したうえで標準出力に出力します。
そのため、ほかのユーザーによるデータベースへの読み書きをブロックすることなく、バックアップ開始時点における一貫性のあるバックアップを取得することが可能です。
次ページではpg_dumpの出力形式や書式を見ていきます。
Copyright © ITmedia, Inc. All Rights Reserved.