La taille de la base de données Postgres est beaucoup plus grande que les espaces de table sur le système de fichiers
-
30-10-2019 - |
Question
J'ai une instance Postgres 8.3 avec des espaces de table totalisant environ 74 g. C'est bon.
Mais si je demande à Postgres de la taille de ma base de données, j'obtiens une grande réponse (inattendue): 595 Go.
Cela semble très étrange. Les tests d'E / S de disque sur le système sont dans la plage «normale», mais les requêtes sont plus lentes qu'auparavant.
Est-ce que cette corruption de la base de données? Ou y a-t-il des moyens de «réparer» cette bizarrerie?
Modifier] Je vérifie la taille de l'espace de table par le système d'exploitation:
/usr/local/pgsql/data/tblspaces/du -c -h
74G total
Tous les espaces de table sont là
Je vérifie la taille de la base de données TE comme ceci:
select pg_size_pretty(pg_database_size('database'))
Edit2
J'ai également vérifié l'intégralité / usr / local / pgsql / dir. C'est 76 g
Et j'ai dirigé cette requête:
select
tablename
, pg_relation_size(tablename)
, pg_size_pretty(pg_relation_size(tablename) ) as relsize
, pg_size_pretty(pg_total_relation_size(tablename) ) as disksize
, pg_total_relation_size(tablename)
from pg_tables where schemaname <> 'information_schema'
order by 2 desc
Qui a renvoyé les relations «normales», dont aucune ne dépassait la disksize.
Pas de solution correcte