Недавно у меня закончилось место на диске. Я удалил несколько старых строк данных из базы данных CMS. Я заметил, что свободное место на диске не увеличивалось должным образом. Я поискал в serverfault и обнаружил, что VACUUM FULL;
команда.
К сожалению, я не могу запустить эту команду из-за переполнения диска.
Это мой журнал:
postgres@Ubuntu-1510-wily-64-minimal:~$ psql -d cms
psql (9.4.6)
Type "help" for help.
cms=# auto vacuum
cms-# ;
ERROR: syntax error at or near "auto"
LINE 1: auto vacuum
^
cms=# VACUUM FULL;
ERROR: could not extend file "base/80180/114991.6": No space left on device
HINT: Check free disk space.
cms=# \q
postgres@Ubuntu-1510-wily-64-minimal:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 985M 0 985M 0% /dev
tmpfs 201M 26M 175M 13% /run
/dev/sda1 47G 39G 5.8G 87% /
tmpfs 1001M 8.0K 1001M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 201M 0 201M 0% /run/user/0
postgres@Ubuntu-1510-wily-64-minimal:~$ psql -d cms
psql (9.4.6)
Type "help" for help.
cms=# VACUUM FULL;
ERROR: could not extend file "base/80180/115638.5": No space left on device
HINT: Check free disk space.
cms=# \q
postgres@Ubuntu-1510-wily-64-minimal:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 985M 0 985M 0% /dev
tmpfs 201M 26M 175M 13% /run
/dev/sda1 47G 39G 5.7G 88% /
tmpfs 1001M 8.0K 1001M 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 1001M 0 1001M 0% /sys/fs/cgroup
tmpfs 201M 0 201M 0% /run/user/0
postgres@Ubuntu-1510-wily-64-minimal:~$ psql -d cms
psql (9.4.6)
Type "help" for help.
cms=# VACUUM FULL;
ERROR: could not extend file "base/80180/115660.5": No space left on device
HINT: Check free disk space.
cms=#
Я сейчас в замешательстве. У меня 5,7 ГБ свободного места, и я не могу освободить больше, потому что диск заполнен.
Любая идея?
Операционная система резервирует некоторую часть дискового пространства для дефрагментации и использования администратором, так как postgresql не запускается от имени root, у него нет доступа к последним 5% 9 или какому-либо другому)
чтобы исправить это, вам нужно освободить место, возможно, вы можете временно переместить некоторые несвязанные файлы из системы (например, файлы журнала)
удаление всех индексов (и ограничений внешнего ключа) может освободить достаточно диска. затем заново создайте индексы (pg_dump --schmea-only помимо прочего предоставит вам все определения индексов, чтобы вам было что восстановить)
резервное копирование большой таблицы на внешний носитель, а затем ее усечение и повторная загрузка также будет иметь тот же эффект, что и вакуумное заполнение.