[pgsql-jp: 40356] Re: vacuumdbでもI/O

Tatsuhito Kasahara kasahara.tatsuhito @ oss.ntt.co.jp
2010年 8月 20日 (金) 20:26:34 JST


こんばんは、笠原と申します。

加藤 健太 wrote:
> そこにWALファイルもあるのですが、vacuumの時にファイルの書き込みなどは行
> われるのでしょうか?
VACUUM 時には、
・不要なレコードを掃除したページのイメージ
・上記のページ操作を記録したWAL
が書き込みされます。

もし、"デフォルト以外のテーブルスペース"に置いたテーブルへの
VACUUM にて、"デフォルトのテーブルスペース"へ書き込みが発生
しているようであれば、WAL の書き込みの影響だと思います。

基本的に、更新が走らない DB であれば、VACUUM をしても書き込みは
ほとんど発生しません。

ただし、更新されていない DB であっても、古いトランザクションで挿入された
データが FREEZE されずに残っていると、データの書き込みが発生します。
一度 FREEZE されたレコードは、以降 FREEZE 対象にはなりません。

# FREEZE 処理は、VACUUM 中に行われる処理です。古いトランザクションで
  挿入されたレコードに特別な ID を振って"必ず可視"である、という情報を
  付与する操作です。そのため、データの更新が発生します。

(参考)
http://www.postgresql.jp/document/current/html/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND

-- 
NTT OSSセンタ

笠原辰仁


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