[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 メーリングリストの案内