PostgreSQLで1時間おきに24世代バックアップする

理想型は多分PITRの設定すればいいんだけど、お手軽に。

バックアップディレクトリを作る

$ sudo mkdir /var/backup

cronにバックアップ用の設定を記述

/etc/cron.d/pg_dumpallとかに書く。

30 * * * * root HOUR=`date +\%H`; /usr/local/pgsql/bin/pg_dumpall -c -U backup > /var/backup/pg_dump.$HOUR && gzip -f /var/backup/pg_dump.$HOUR

バックアップ用のユーザbackupは事前に作っておく。rootではなくpostgresユーザで実行してもいいかもしれない。その辺は環境によりけり。

毎時30分に上記が実行される。

0分に実行だと微妙なタイミングでファイル名が前回実行とかぶるかもしれないのでダメ。

後はcrondを再起動。

$ sudo /etc/init.d/crond restart
最終更新時刻: 2011年02月15日