Mam TRUNCATE
ogromną tabelę (~ 120 Gb) o nazwie files
:
TRUNCATE files;
VACUUM FULL files;
Rozmiar tabeli wynosi 0, ale nie zwolniono miejsca na dysku. Wszelkie pomysły, jak odzyskać utracone miejsce na dysku?
AKTUALIZACJA: Miejsce na dysku zostało zwolnione po ~ 12 godzinach, bez żadnych działań po mojej stronie. Używam serwera Ubuntu 8.04.
postgresql
truncate
disk-space
Adam Matan
źródło
źródło
Odpowiedzi:
Zgodnie z komentarzami w źródle ,
truncate
tworzy nowy, pusty plik pamięci i usuwa stary plik pamięci w czasie zatwierdzania. (Dokumenty sugerują, że „plik pamięci” jest po prostu plikiem, jeśli chodzi o system operacyjny, ale mogę nie rozumieć terminologii).Ponieważ wydaje się, że usuwa plik, mogę sobie wyobrazić przypadki, w których podstawowy system operacyjny może nie zwolnić tego miejsca natychmiast. Wyobrażam sobie, że w niektórych przypadkach plik pamięci może skończyć na przykład w Koszu w systemie Windows. Ale w moim przypadku obcięcie tabeli w PostgreSQL 9. coś natychmiast zwiększyło przestrzeń w systemie Windows.
Obcinanie jest również rejestrowane w dzienniku WAL. Nie wiem, jaki to może mieć wpływ.
źródło