у которой toast занимает 90% места в базе и она по pgstattuple наполовину пустая:
* накидывать место для того чтобы сделать pg_repack - глупо (накинуть 2TB чтобы освободить 1.5TB и получить 3.5TB в df?…),
* сделать update table set t = t || ‘’, а потом vacuum - в надежде что конец файла никто не займет - страшно
А донормализировать не получится?
pgcompacttable не возьмёт, надо pg_repack, как вариант из головы - оценить размер блоата, посмотреть, хватит или нет на репак. Если не хватает, то дать диск, перетащить туда что-нибудь не нужное, до тех пор пока не будет хватать места. Потом обработать таблицу и затащить всё обратно. Но это так - мысли из головы.
Добавить места чтобы высвободить места так себе идея. Расширяются современные файловые системы легко. А вот сдуваться не умеют.
Я на самом деле не имел в виду расширение текущего раздела, а просто добавление нового диска, создание ТП на нём, и перенос каких-нибудь таблиц/индексов на него.
LVM не используете? Там это просто делается
А! Идея понятна. Postgres вроде не умеет делать online move в другой tablespace?
Урезание живого раздела?
Тожэ неработает, да.
Обсуждают сегодня