[pgsql-jp: 40016] ウォームスタンバイ中のVacuumについて

pretty.cefiro pretty.cefiro @ gmail.com
2009年 10月 9日 (金) 12:37:02 JST


pretty-cefiroと申します。
初めて投稿をさせていただきます。

業務システムで初めてPostgreSQLを運用することになりました。
運用設計の過程で以下のような問題が発生しており、困っております。

以下のURLを参考にウォームスタンバイ構成を検討中です。
http://www.postgresql.jp/document/pg837doc/html/warm-standby.html


プライマリサーバは常にDBを起動しているため、Vacuum Fullを実行可能ですが、
スタンバイ側はxlogの適用状態が継続するため、Vacuum Fullが実行できず
不要データが使用している領域を削除できないのではないかと認識しております。

良い対応策をご存知の方がいらっしゃいましたらご教示いただけると助かります。

とりあえず以下のような対応を思いつきました。

1.スタンバイの解除+Vacuum Full→再度スタンバイ
以下の手順を想定しております。
・スタンバイ状態を解除しDBをオープン。
・Vacuum Full実行。
・再度スタンバイ状態へ戻す。
※そもそもタイムラインが変わってしまうため、プライマリの
xlogが適用できないのではないかと考えております。

2.プライマリ側のオンラインバックアップをスタンバイ側に定期リストア
以下の手順を定期実施することを想定しております。
・ウォームスタンバイを解除
・プライマリ側で取得したオンラインバックアップ(Vacuum Full済み)を取得。
・スタンバイ側で上記バックアップを利用して再度スタンバイ構成とする。
※この場合、定型手順にするには煩雑なものとなってしまいます。

上記以外の方法をご存知でしたらお教えください。
よろしくお願いいたします。



pgsql-jp メーリングリストの案内