У нас большая таблица (1.6T) и удалено 60% записей, и мы хотим освободить это пространство для ОС и файловой системы. Мы запускаем PostgreSQL 9.4 (мы застряли на этом в ожидании серьезного обновления программного обеспечения).
Нам нужно это пространство, так как мы сократили до 100 ГБ и когда обновляются материализованные представления, мы запускаем Недостаточно места на сервере.
Я попытался запустить VACUUM(FULL, ANALYZE, VERBOSE) schema.tablename
и позволить ему работать в течение 24 часов на прошлых выходных, но пришлось отменить его, чтобы вернуть сервер в рабочее состояние.
Я запустить его снова в эти выходные, после удаления индексов (я надеюсь, что это ускорит его, поэтому он будет завершен sh). Пока что нет ни выхода, ни признаков прогресса. Я создал табличное пространство в другом массиве SSD и установил его как временное пространство, используя temp_tablespaces = 'name_of_other_tablespaces'
, но du -chs
показывает, что оно все еще пусто.
Запрос показывает active
, но поскольку использование диска не увеличивая его, вы чувствуете, что просто сидите, не шумите и притворяетесь, что его нет.
Это на сервере с 512 ГБ ОЗУ и массивом RAID 10 очень быстрых корпоративных твердотельных накопителей. Есть ли способ добиться прогресса и узнать, что что-то на самом деле происходит и что это работает? Какие-нибудь предположения относительно продолжительности или другие предложения?