- 8.0系列の目玉機能の一つだし、前々から興味あったし、バックアップの多重化は実際意味があるので、一念発起してやってみた。
- やってみたら、あっけないほど簡単に終わってしまったのがびっくりですが、しばらく様子見してみよう。
- 16MB単位でトランザクションログがバックアップされるようですが、僕の使い方で16MBというと、月一回ローテートする程度何じゃないだろうかと思ってみたりする。
- 適当なところで、RTIPの方も試しておかないとなりませんかも。
- バックアップ先は、/home/backup/pgsql
- chmod 777 /home/backup/pgsql
archive_command = 'cp -i %p /home/backup/pgsql/%f </dev/null'
ls -l /home/backup/pgsql
total 16400
-rw------- 1 pgsql wheel 16777216 8 21 15:44 00000001000000000000001D
ベースバックアップの作成
- マニュアルによると、ラベルにはバックアップ先の完全パスを使うことがよいらしいので、そんな感じに。
データベースにスーパーユーザとして接続し、以下のコマンドを発行してください。
SELECT pg_start_backup('label');
ここでlabelは、バックアップ操作を一意に識別する時に使用したい任意の文字列です。(推
奨方法は、格納先のバックアップダンプファイルの完全パスを使用することです。)
pg_start_backupは、バックアップ情報を持つbackup_labelという名前のバックアップラベル
ファイルを、クラスタディレクトリ内に作成します。
su pgsql
psql template1
SELECT pg_start_backup('/home/backup/pgsql/');
pg_start_backup
-----------------
0/1EC47E48
(1 row)
su pgsql
psql template1
template1=# SELECT pg_stop_backup();
pg_stop_backup
----------------
0/1EC47E84
(1 row)
template1=# LOG: archived transaction log file "00000001000000000000001E.00C47E48.backup"
ls -l /home/backup/pgsql
total 16402
-rw------- 1 pgsql wheel 16777216 8 21 15:44 00000001000000000000001D
-rw------- 1 pgsql wheel 255 8 21 15:54 00000001000000000000001E.00C47E48.backup
- コレで、後は放置しておけばアーカイブログがたまると言うことかな。