[groonga-dev,03899] Re: PGRNファイルが開けない?

Back to archive index

高見 直輝 takam****@orega*****
2016年 2月 2日 (火) 18:36:15 JST


高見です。

> > autovacuum = offにした状態で確認したところ、ANALYZEがトリガであることが
> > 判明しました。
> 
> ありがとうございます!
> ANALYZEは内部的にVACUUMと処理を共有しているので、ANALYZEが実
> 行されたらPGroongaのファイルが消えても(VACUUMのときと同じよ
> うな動きになっても)おかしくないです。
> 
> > ※InsertとSelectでは発生しないことを確認。
> > 以下の処理を行い、再現することを確認しました。
> > 1.pgrn*ファイルの削除
> > 2.REINDEX実行
> > 3.ANALYZE実行
> > この後、数分以内にobj_removeが実行され始めます。
> 
> 念のため↓について確認させてください。
> 
> > オブジェクトが残っている状態でpg_classからデータが消えるという状況がよく
> > 分かっていないのですが、上記手順における、REINDEXの実行後とANALYZEの実行
> > 後(obj_removeの完了後)でpg_classの内容を比較しました。
> > その結果、PGroongaのインデックスのレコード数並びに内容に変化はありません
> > でした。
> > pg_classの内容取得に使用したSQLは以下の通り。
> > select oid, * from pg_class;
> 
> 1.の後に
> 
>   select oid, * from pg_class;
> 
> を実行するとPGroongaを使ったインデックスの名前は存在していま
> すか?
> (私は存在しているのだと思っています。)

存在しています。

> 念のため確認方法を書くと。。。
> relnameにインデックス名が入っているはずなので、それで確認で
> きます。また、そのときのoidも記録しておいてください。REINDEX
> 実行時にPGroongaのログに残る「SourcesXXX」のXXXと同じかを確
> 認したいからです。
> 
> 
> 次に、2.の後に
> 
>   select oid, * from pg_class;
> 
> を実行するとPGroongaを使ったインデックスの名前は存在していま
> すか?
> (内容は変わっていないということなので存在しているのだと思っ
> ています。)

存在しています。

> また、2.のときにPGroongaのログに残る「SourcesXXX」のXXXと↑
> で確認したoidは同じですか?
> (同じなんだと思っています。)

これは違っていました。
ログ:38061 、 OID:16711

> 最後に、3.の後に
> 
>   select oid, * from pg_class;
> 
> を実行するとPGroongaを使ったインデックスの名前は存在していま
> すか?
> (内容は変わっていないということなので、ここでも存在している
> のだと思っています。)

存在しています。
念のため、ログとOIDについても調べました。
ログ:39522(変化有り) 、 OID:16711(変化無し)

> ↑(...)の中に書いた予想通りだと想定外の状態なので、手元で
> 動かせないとどうにもできなそうです。もし、そういう状態なら公
> 開できるSQLで再現させてもらえないでしょうか?

他のPCで電源断以外、ほぼ同等構成で確認したのですが、再現しませんでした。
※電源断は怖いので試せません・・・。
問題の環境も、エラーが発生しはじめたのがPCの電源断からなので、SQLの実行
だけで状況を再現するのは難しい、というか、こちらでも実現できていない状況
です。

正常に稼動している環境で上記の手順で確認したところ、以下の挙動になりました。
・REINDEXによってpg_classのOIDに変化は見られなかった
・「SourcesXXX」のXXXは、当初pg_classのOIDであったが、REINDEX実行後は
 pg_classのrelfilenodeの値がセットされる

この挙動自体は正しいのでしょうか?
これが間違っている場合、DB構築手順やpg_confの内容に原因がある可能性はあ
りますでしょうか?

なお、問題が発生している環境では、relfilenodeの値もSourcesの値と一致しま
せんでした。但し、数値は近くなっています。
ログ:39522 、 relfilenode:38738

----------------------------- 
高見 直輝 <takam****@orega*****>
株式会社オレガ
TEL:03-3267-0150
FAX:03-3267-0180




groonga-dev メーリングリストの案内
Back to archive index