povlistテーブルのidが258のデータが存在するのに、SELECT出来ないという事象が発生しました。
具体的には以下のような事象です。
試しに、VACUUM ANALYZEを実行したところ、以下のようになりました。
具体的には以下のような事象です。
ap2=# SELECT id FROM povlist WHERE id = 258 ORDER BY id DESC ; id ---- (0 行)
ap2=# SELECT id FROM povlist WHERE id <= 258 ORDER BY id DESC ; id ----- 258 254 253 250 245 244 続くid指定だと検索出来ないのに、id<=258だと検索出来ていました。
試しに、VACUUM ANALYZEを実行したところ、以下のようになりました。
ap2=# VACUUM ANALYZE ; WARNING: relation "povlist" page 25 is uninitialized --- fixing WARNING: relation "povlist" page 26 is uninitialized --- fixing WARNING: relation "povlist" page 27 is uninitialized --- fixing WARNING: relation "povlist" page 28 is uninitialized --- fixing WARNING: relation "povlist" page 29 is uninitialized --- fixing WARNING: relation "povlist" page 30 is uninitialized --- fixing WARNING: relation "povlist" page 31 is uninitialized --- fixing WARNING: relation "povlist" page 32 is uninitialized --- fixingこの後、VACUUM ANALYZEは完了の応答が返ってこなくて、以下のようなメッセージが表示されました。
FATAL: terminating connection due to administrator command サーバとの接続が想定外にクローズされました おそらく要求の処理前または処理中にサーバが異常終了 したことを意味しています。 サーバーへの接続が切れました。リセットしています: 成功。この後、id258が検索されるかを確認したところ、完全にSELECT出来なくなりました。
ap2=# SELECT id FROM povlist WHERE id <= 258 ORDER BY id DESC ; id ----- 254 続く[pgsql-jp: 33210] Re: vacuumでエラー?によると、VACUUM FULLで回復しそうでしたので、実行しました。
ap2=# VACUUM FULL ; FATAL: terminating connection due to administrator command サーバとの接続が想定外にクローズされました おそらく要求の処理前または処理中にサーバが異常終了 したことを意味しています。 サーバーへの接続が切れました。リセットしています: 成功。完了の応答は返ってこなかったのですが、無事id 258番が検索できるようになりました。
ap2=# SELECT id FROM povlist WHERE id = 258 ; id ----- 258 (1 行)