[pgsql-jp: 38573] Re: vacuumdbコマンドのfullオプションをつけた時のトラブルについて

hiroshi suenaga rsgfd683 @ yahoo.co.jp
2007年 7月 12日 (木) 22:21:52 JST


末永です。

Daisuke Arai wrote:
>
> では、可能での話ですけど、いくつのバージョンからvacuumdbコマンドにfullオプ
> ションをつけてもACCESS EXCLUSIVEロックがかからないようになるのでしょうか。

現在のバージョンではロックがかかりますね。

> もしこれかが出来ないようであれば、完全なるアクセスを遮断した上でvacuumを
> 行わねばならない手法が必要になりますよね。

ACCESS EXCLUSIVEロックが獲得中は、他のロックは獲得できませんし、
他のロック獲得中は、ACCESS EXCLUSIVEロックが獲得できませんが、
ロックを誰かがずっと獲得していない限りは、vacuum fullは実行できます。
完全にアクセスを遮断しなければならないということでもないです。
また、vacuum実行中にSELECTなどのSQLが実行された場合は、
vacuumの後に実行されるだけです。
ただ、この動きがシステムの運用に支障をきたすとことは多いと思います。

私が作成したシステムは基本的には24時間稼動で、
DBのサイズが最大数GBとなるので、fullオプションををつけて、
vacuumを実行するのは通常運用中は、難しかったです。
なんとか、運用上アクセスがほぼない時間帯を探して、実行するようにしました。

逆に皆さんに24時間稼動のシステムではどのようにしているのか聞きたいですね。




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