pg_standbyをはじめて設定したときはメインDBストップしてデータ領域コピーしたのだけど
メインDBを稼働させたままバックアップとることができるみたい。
設定
まず、postgres.confでarchive_modeをonにしておく。でないとpg_start/stop_backupが使えない
archive_mode = on
バックアップ
# オンラインバックアップの準備(ラベルに現在時刻設定してる) psql -c "SELECT pg_start_backup(now()::text)" # 適当にバックアップ側にコピー scp -r /usr/local/pgsql/data root@hogehoge:/usr/local/pgsql # オンラインバックアップの終了 psql -c "SELECT pg_stop_backup()" # 転送したバックアップ側のpidとpg_xlogは削除する rm /usr/local/pgsql/data/postmaster.pid rm /usr/local/pgsql/data/pg_xlog/* rm /usr/local/pgsql/data/pg_xlog/archive_status/*
参考サイトだと転送をrsyncでやっていてpidとpg_xlogは転送対象から除外している。
こっちのがスマート。