• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:autovacuumを定時起動したい)

autovacuumを定時起動する方法とは?

このQ&Aのポイント
  • postgresql8.3を使用している場合、autovacuumを使って無駄な領域を削除したいと考えています。しかし、定時起動する方法がわかりません。
  • autovacuumを定時起動する方法がわからない場合、他の方法としてvacuumdbをcronで設定するか、autovacuumの起動間隔を変更してpostgresqlを再起動することが考えられます。
  • 他の方法としてvacuumdbを使用するか、autovacuumの起動間隔を変更して再起動することができますが、いずれも面倒な作業が必要です。もしautovacuumを定時起動する方法を知っている方がいらっしゃれば、教えていただきたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 う~ん・・・・定期的ではなくPostgreSQL自身がvacuumすべき(と判断した)タイミングでvacuumするから「auto」vacuumなんですがね。そういう用途でautovacuumは使えませんと思いますがいかが。  ところでご存知かも知れないがautovacuumは一定間隔で起動されPostgreSQLの統計情報を参照してある値が閾値を超えていたら勝手にvacuumして終了するというものだ。なので、「autovacuumの起動に先立って実行され、統計情報を参照してautovacuum_vacuum_threshold、autovacuum_analyze_threshold、autovacuum_vacuum_scale_factorを丁度vacuumされるような閾値に調整してやった上でPostmaster自体を再起動するようなツール」を作ってやれば実現できそうではある・・・・けど・・・・明らかに本末転倒だよね。  vacuumdbを使いたくない理由がわかればプロの人が何かクールな対案を練ってくれるかも知れません。

ijhnb6543f
質問者

お礼

こんばんは。ご意見ありがとうございます。 そうなんですよね。自動で判断してくれるから、autovacuumなんですよね。 vacuum中は、postgresqlにアクセスするとレスポンスが遅くなる、 みたいな情報を聞いて、データアクセスが頻繁な日中は、 勝手にvacuumされたら困るなぁ、と思っていました。 閾値があるのは知っていますが、詳しいことまでは理解しきれていません。 リファレンスに書いてあった気がします。 ありがとうございました。

関連するQ&A