53100: disk_full
PostgreSQL의미
디스크가 가득 차서 서버가 파일에 쓸 수 없었다. 데이터 디렉터리, WAL 또는 임시 파일이 있는 디스크에 남은 공간이 없다.
원인
데이터 증가, 통제되지 않은 WAL 누적(아카이빙 또는 replication slot 지연), 대용량 임시 파일(거대한 정렬), 비대해진 로그 파일, 또는 테이블/인덱스 bloat.
해결 방법
디스크 사용량을 확인하고 불필요한 파일을 정리한다. WAL 누적을 확인한다: pg_stat_replication과 pg_replication_slots(사용하지 않는 slot은 삭제한다. 지연된 slot은 WAL을 보존한다). 디스크가 가득 찬 상태에서는 VACUUM FULL이나 REINDEX를 실행하지 않는다: 테이블을 다시 쓰기 때문에 테이블 크기만큼의 추가 공간이 필요해 상황을 악화시킬 수 있다. 일반 VACUUM도 운영체제에 공간을 (거의) 반환하지 않는다. pg_wal 디렉터리의 파일을 절대 수동으로 삭제하지 않는다. 먼저 WAL/slot, 로그, temp 원인을 해결해 공간을 확보하고 로그와 temp 파일의 배치를 검토한다. 영구 해결책으로 디스크 용량을 늘리고 모니터링/알림을 설정한다.