Закончилось место на диске, удалить базу или таблицу в postgresql

НА сервере кончилось место, необходимо удалить базу или конкретную таблицу в postgres, сам postgres не запускается т.к. no space left on device


Ответы (1 шт):

Автор решения: Мелкий

Вот именно поэтому не нужно доводить раздел базы до состояния "меньше 5% свободного места". Всё верно, для старта базы может потребоваться дополнительное место на диске. Если вы хотите в этом вопросе поспорить с базой - значит вам не нужна эта база и можете просто удалить весь datadir. (риск необратимо повредить данные практически гарантированный)

Необходимо откуда-то достать немного места для запуска базы. Скорей всего для корректного запуска не хватает лишь нескольких мегабайт свободного места. Посмотрите, что на сервере можете удалить или временно куда-то перенести. Только не трогайте ничего в PGDATA базы: pg_wal, pg_clog, pg_xlog - это не логи, которые кто-то забыл удалить!


Если у вас на разделе с базой ext4 - проверьте осталось ли у вас reserved space.

sudo tune2fs -l /dev/.... | grep 'Reserved block count'

Можете временно уменьшить его

sudo tune2fs -m 1 /dev/sdb1

(затем верните к исходным 5%)

Это полезное свойство ext файловой системы часто позволяет запустить базу.

→ Ссылка