PITR の実行の仕方(おおまかな流れ)

  • PITR はポイントインタイムリカバリ、ある地点の状態に戻すこと。

うっかり delete from hoge; するときに where を付け忘れたとかのとき。
元に戻す時刻がわかれば、時刻指定。
トランザクション ID がわかれば(わかることってあるの?)、トランザクション ID 指定。


実際の手順のおおまかな流れは、PostgreSQL 8.3.5 文書の 24.3.3 を参照して
とその前に、WAL と アーカイブログ を on にしてること前提。
もういっこの前提が、ある地点の data/ 以下がまるごとあること。

  • リカバリしたいサーバ停止
  • できれば data/ 全部、(できなきゃ pg_xlog/ 全部)をコピーして逃がす
  • ある地点の data/ に復元
  • pg_xlog ディレクトリ内をすべて削除
  • recorvery.conf の中に時刻指定とかを書いて、data/ に置く
  • PostgreSQL を起動させると pg_xlog ディレクトリ内の トランザクションログやアーカイブログを使って recovery.conf に書いた指定時刻のとこまで進める

というような、流れらしいです。
これまた勉強会で聞いた話ですが
Undo 機能、ようするに巻き戻しの機能は今のところ PostgreSQL にはないらしいです。
なので、ある地点の状態までリストアして戻して REDO ログをあてていくという手順になります。
実際に試すのは後日。


追記:

  • recovery.conf は recovery.done リカバリが終わると recovery.done に自動で変わります(PostgreSQL 8.3.5)
  • やっぱり派手に間違えていました。

http://www.geocities.jp/sugachan1973/doc/funtouki.html
を読んで少し勉強中。