Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

PG_53100 1С:Предприятие и СУБД

PostgreSQL Error 53100: disk_full — исправление переполнения диска

Обновлено: 25.08.2026 · Официальная документация ↗
  • Ошибка: ERROR: could not extend file: No space left on device (SQLSTATE 53100).
  • База данных переходит в режим read-only или аварийно останавливается (PANIC).
  • Сбой записи новых транзакций в каталог pg_wal.

1. Проверка свободного места по точкам монтирования

df -hT /var/lib/postgresql/

2. Очистка временных файлов сортировки (pgsql_tmp)

Тяжелые запросы могли создать временные файлы гигабайтного размера, которые можно безопасно удалить:

find /var/lib/postgresql/ -type d -name "pgsql_tmp" -exec rm -rf {}/* \;

3. Безопасная очистка WAL через pg_archivecleanup

Никогда не удаляйте файлы из pg_wal командой rm! Используйте штатную утилиту:

# Поиск старейшего нужного WAL сегмента
pg_controldata /var/lib/postgresql/15/main | grep "Latest checkpoint's REDO WAL file"

# Очистка устаревших файлов до контрольной точки
pg_archivecleanup /var/lib/postgresql/15/main/pg_wal 00000001000000A100000045

4. Удаление неиспользуемых слотов репликации

Неактивные слоты удерживают WAL на диске бесконечно:

SELECT slot_name, active, wal_status FROM pg_replication_slots WHERE active = 'f';
-- Удаление мертвого слота
SELECT pg_drop_replication_slot('dead_slot_name');
💡 Практика специалистов: Всегда настраивайте параметр wal_keep_size с разумным лимитом (например, 16GB) и используйте max_slot_wal_keep_size, чтобы мертвые реплики не могли обрушить основной сервер.

Частые вопросы (FAQ)

Что произойдет, если удалить активный WAL файл через команду rm?

СУБД моментально упадет в состояние PANIC, а при последующем старте не сможет восстановиться из-за потери журнала транзакций.

Почему pg_wal разрастается до заполнения 100% диска?

Основные причины: сбой архивации (archive_command возвращает ошибку) или зависший слот физической/логической репликации.

Как предотвратить падение кластера из-за диска?

Вынесите каталог pg_wal на отдельный физический диск или раздел LVM, изолировав его от каталога основных таблиц base.

Помогает ли VACUUM FULL освободить место на диске при ошибке 53100?

Нет! Для выполнения VACUUM FULL требуется дополнительное свободное место на диске, равное размеру сжимаемой таблицы.

Полезные материалы
Рекомендуем