[pgsql-jp: 36137] Re: pg_clog ディレクトリ内のログが参照できずPANIC

Katsuhiko Okano k_okano @ po.ntts.co.jp
2005年 10月 14日 (金) 10:57:25 JST


岡野と申します。


直接解決にはならないですが、参考までに投稿します。

> postgres[28659]: [3] PANIC:  open of /home/postgres/data/pg_clog/001B
> failed: そのようなファイルやディレクトリはありません
> postgres[28659]: [4] LOG:  statement: select * from pgstattuple('tbl')
(略)
> vacuum処理の中で、実施された「removing commit log file 001B」が
> 原因と考えておりますが、色々とWebで検索したもののこれといったものが
> 見つからず、投稿させていただいた次第です。
> (postgresの後の[ ]内のPIDからvacuumが実施した処理で
>  あると考えております。)

データベースは破損していないと思います。
http://ml.postgresql.jp/pipermail/pgsql-jp/2005-July/019254.html
で谷田さんが書いているように、
・CLOGファイルの中に各トランザクションの状態が入っている
・1つのCLOGファイルには1048576個のトランザクションの状態が入る
・もう誰も使わないと判断されたCLOGファイルはVACUUMで削除される
という流れで、VACUUMによりCLOGが削除されたのだと思います。


contribのpgstattuple関数がどういう仕組みになっているか
調べてみると何かわかるのかもしれません。
----------------------------------------
Katsuhiko Okano
k_okano at po.ntts.co.jp
NTT Sofrware Corp. (division "NBRO-PT4")



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