[pgsql-jp: 42103] DELETE実行もレコードが消えず、autovacuumでエラーが発生する

h.inaoka @ jast.co.jp h.inaoka @ jast.co.jp
2024年 3月 19日 (火) 11:31:02 UTC


ML各位


稲岡と申します。

postgreSQL10にて、ログファイルに以下のエラーが出力されました。

2024-03-04 14:45:50.368 JST [11224] ERROR: could not truncate file "base/16394/43464" to 0 blocks: Permission denied
2024-03-04 14:45:50.368 JST [11224] CONTEXT: automatic vacuum of table "smartbn.xuc_trans"

“smartbn.xuc_trans”テーブルは、webシステムの画面からこのテーブルに常時レコード追加され、
また一方でバックグラウンドで5分おきにバッチが走行し、同テーブルを参照、更新、削除しています。

上記エラーが発生したのが14:45:50ですが、その少し前の14:45:03あたりで、xuc_transテーブルに対してDELETE文を発行し、
レコードを削除していますが、キーを指定して1件削除されるはずが、削除されず、またエラーも発生せずに正常終了しています。

この事象は常時起きているわけではなく、稀に発生し、DELETE処理の失敗(0件更新)時には必ず上記エラーが出力されています。
半年ほど稼働したなかで3回ほど発生しています。エラー発生後は特段なにもせずとも通常通りの正常処理が行われ、
エラーも出ない状況が続きますが、3度ほど発生していることから、原因がわからないと次いつ起こるかわからない状況と考えています。

そこでお聞きしたいのが、以下2点です。
 ・キー指定しているにもかかわらずDELETE処理で1件も削除されず正常終了する事象はあり得るのでしょうか。
 ・上記エラーの原因と回避策があればご教授いただきたく。

よろしくお願い致します。




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