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

投稿日: 2011年02月15日 更新日: 2017年07月22日

理想型は多分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

名前:宮内 はじめ

Code for Nagoya名誉代表

E2D3名古屋支部長

プログラマーです。GISやデータビズが好きです。このサイトは宮内の個人的なメモです。

プロフィール

お問い合わせ