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

TANIDA Yutaka tanida @ sraoss.co.jp
2005年 10月 14日 (金) 11:56:30 JST


谷田です。

On Fri, 14 Oct 2005 08:45:59 +0900
松本 貴臣 <matsumoto_takaomi @ nextcom.co.jp> wrote:

> readhat+java+postgres7.3.6を採用し、システムを構築しております。
> 以下のようなPANICが頻発し、原因の究明にあたっておりますが、
> 行き詰まっております。
> 皆様のお知恵を頂戴できればと思い、ご連絡差し上げた次第でございます。
> 
> [事象]
> 以下のようなログが発生し、コネクションがクローズされる。
> 
> =========================================================
> postgres[28659]: [3] PANIC:  open of /home/postgres/data/pg_clog/001B
> failed: そのようなファイルやディレクトリはありません
(snip)

> [ご質問]
>  * これはDBが破損した状態で復旧はできないのでしょうか。

すでに無い pg_clog以下のファイル、あるいは明らかに未来のものを参照してい
るケースというのは、メモリエラー、あるいはディスクエラーにより既存の
xmin,xmax等のxid型システムカラムが破壊された(ために、間違ったpg_clog以
下のファイルを参照してしまう)と考えてほぼ間違いないです。

復旧のためには、ddとかで001Bファイルを256KBサイズで適当に作ってやれば、
ひとまず読み込むことができるでしょう。その後はmemtest86を1日程度やって
みてメモリにエラーが無いかどうかとか、ディスクとか、そういうトラブルを洗
うことをお勧めします。

>  * pg_resetxlogを使えるかもと思ったのですが、
>   「最後の手段」的な記述があったため、躊躇っております。
>    他にリスクの低い方法はございませんでしょうか。

残念ながら、このケースを復活するためにはpg_resetxlogでは不十分です。

-- 
TANIDA Yutaka <tanida at sraoss.co.jp>





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