Thread: vacuumlo diskspace
Господа, не могу понять в чем дело, vacuumlo удаляет несколько миллионов записей, а размер базы не изменяется. До: mydb=# SELECT relname AS objectname, relkind AS objecttype, reltuples AS "#entries", pg_size_pretty(relpages::bigint*8*1024) AS size FROM pg_class WHERE relpages >= 8 ORDER BY relpages DESC; objectname | objecttype | #entries | size ---------------------------------------------------+------------+-------------+--------- pg_largeobject | r | 7.68308e+06 | 13 GB pg_largeobject_loid_pn_index | i | 7.66171e+06 | 198 MB ... Vacuumlo: -bash-3.2$ time vacuumlo -v mydb | tee vacuumlo.mydb.220513.txt ... Removed 2343372 large objects from mydb. real 390m22.508s user 0m18.210s sys 0m53.031s После: objectname | objecttype | #entries | size ---------------------------------------------------+------------+-------------+--------- pg_largeobject | r | 1.49123e+06 | 13 GB pg_largeobject_loid_pn_index | i | 1.75785e+06 | 199 MB ... Как обьяснить? Что не так? postgresql84-server-8.4.13-1.el5_8 CentOS5 x86_64
2013/5/23 Sergey Kandyla <sk@hlsrv.com>
Господа,
не могу понять в чем дело, vacuumlo удаляет несколько миллионов записей, а размер базы не изменяется.
До:
mydb=# SELECT
relname AS objectname,
relkind AS objecttype,
reltuples AS "#entries", pg_size_pretty(relpages::bigint*8*1024) AS size
FROM pg_class
WHERE relpages >= 8
ORDER BY relpages DESC;
objectname | objecttype | #entries | size
---------------------------------------------------+------------+-------------+---------
pg_largeobject | r | 7.68308e+06 | 13 GB
pg_largeobject_loid_pn_index | i | 7.66171e+06 | 198 MB
...
Vacuumlo:
-bash-3.2$ time vacuumlo -v mydb | tee vacuumlo.mydb.220513.txt
...
Removed 2343372 large objects from mydb.
real 390m22.508s
user 0m18.210s
sys 0m53.031s
После:
objectname | objecttype | #entries | size
---------------------------------------------------+------------+-------------+---------
pg_largeobject | r | 1.49123e+06 | 13 GB
pg_largeobject_loid_pn_index | i | 1.75785e+06 | 199 MB
...
Как обьяснить? Что не так?
Согласно документации, vacuumlo не выполняет VACUUM, а просто
удаляет осиротевшие объекты. Отсюда следует, чтобы освободить
место нужно выполнить VACUUM для pg_largeobject вручную.
// Dmitriy.