DBAtlas · データベース運用アトラス

53100: disk_full

PostgreSQL

意味

ディスクが満杯のため、サーバーがファイルに書き込めなかった。データディレクトリ、WAL、または一時ファイルを置くディスクに空き容量がない。

原因

データの増加、制御されない WAL の蓄積 (アーカイブまたはレプリケーションスロットの遅れ)、大きな一時ファイル (巨大なソート)、肥大化したログファイル、またはテーブル/インデックスの肥大化 (bloat)。

対処方法

ディスク使用量を調べ、不要なファイルを削除する。WAL の蓄積を確認する: pg_stat_replication と pg_replication_slots (未使用のスロットは削除する。遅れているスロットは WAL を保持し続ける)。ディスクが満杯の間は VACUUM FULL や REINDEX を実行しない: テーブルを書き直すため、テーブルサイズと同等の追加領域が必要となり、状況を悪化させうる。通常の VACUUM も領域をオペレーティングシステムに (ほぼ) 返さない。pg_wal ディレクトリ内のファイルを手動で削除することは絶対にしない。まず WAL/スロット、ログ、一時ファイルの発生源を解消して領域を確保し、ログと一時ファイルの配置を見直す。恒久対応としてディスク容量を増やし、監視/アラートを設定する。

DBAtlas で開く →

同じデータベースの他の項目