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