Recent Comments

日記:作業機死亡
 [01/04] perry様
DiCEのプラグイン編集
 [01/02] foreclosures mn様
 [01/02] foreclosures panama city beach florida様
 [01/02] foreclosures panama city beach florida様
鼠解剖
 [01/01] nick_botale様
 [07/17] げんき
 [07/17] s-yama先生様
日本の夏・すだれ
 [01/01] nick_orchil様
RBIO:HDD・CPUの温度監視をして扇風機を自動でON/OFFする。
 [10/07] げんき
 [10/03] とおりすがり様

Profile

 Vine Linux 3.2で自宅サーバ構築・運営するにあたっての覚え書き。トラブルシューティング・思いつきのPHPスクリプト。愛車CB5 VIGORのDIY。やらの紹介。

中の人

なかのひと
Graph 207.11.27
Year:  Month:  Day

<<< PHP:一定以上古いファイルを削除する <<<  ||  >>> PHP:WOLを使ってWWW経由で非常時起動マシンを起動 >>>

PostgreSQLの自動バックアップ

2007年11月27日

データベースのバックアップ
PostgreSQLのデータのバックアップには、pg_dumpというコマンドを利用するといいらしい。
これでデータベースの中身がテキストでダンプされるので、それをファイルに保存してやるといい。

$ pg_dump > pgdump.txt

しかしこれは実行したユーザのデータベースしかダンプしてくれなくて、pg_dumpallというコマンドで全部のデータベースがダンプされる。
でもこれは権限が足りないテーブルとかがあったら止まっちゃうから、root権限で実行してやるとよいのかな?
postgresで実行してもいいみたい。

でもcronでrootでやりゃいいや。

自動実行
てことで、週1回ぐらいのペースでデータベースのバックアップを取ってやる。
しかしこれはテキストデータなので、そのまま保存してもディスクスペースの無駄遣い。
ログ保存用ディレクトリに、pg_dumpallして作ったファイルをzip圧縮するようなシェルスクリプトを書く。

$ vi pg_backup.sh

#!/bin/bash
DATE=`date '+%Y%m%d'`
FILENAME=pg_dump_$DATE
pg_dumpall > $FILENAME
zip $FILENAME.zip $FILENAME
rm -f $FILENAME

$ chmod 760 pg_backup.sh
$ sudo chown root:admin pg_backup.sh

/etc/ctontabにこいつを毎週実行する行を足す。
$ sudo vi /etc/crontab

# 毎週日曜朝2時にpgsqlのバックアップを作成
00 3 * * sun cd /xxx/yyy/logs/ ; ./pg_backup.sh

$ sudo crontab /etc/crontab

このディレクトリには、apacheのログやらmaillogやらいろんなログファイルが一定以上のサイズになったら移動されてくるようにしてるので、すべてzip圧縮して5GBぐらいになったらDVDに焼いてディスクスペースを空けてやる。

<<< PHP:一定以上古いファイルを削除する <<<  ||  >>> PHP:WOLを使ってWWW経由で非常時起動マシンを起動 >>>

アンケート

このページの内容はいかがでしたか?
片手間にポチっと送信してやってください。
役に立った 4
おもしろかった 0
ふつー 0
つまらなかった 1
欲しい情報と違った 0
Score:6

トラックバック

このエントリーのトラックバックURL:
http://www.genkikko.net/mt/mt-tb.cgi/63

コメントを投稿