Question

Je haveTRUNCATEd un énorme (~ 120 Go) table appelée files:

TRUNCATE files;
VACUUM FULL files;

La taille de la table est 0, mais pas d'espace disque a été libéré. Toute idée comment récupérer mon espace disque perdu?

Mise à jour: L'espace disque a été libéré après environ 12 heures, sans aucune action de mon côté. J'utilise le serveur Ubuntu 8.04.

Était-ce utile?

La solution

Selon dans la source, truncate crée un nouveau fichier de stockage vide, et supprime l'ancien fichier de stockage à consacrer du temps. (Docs suggèrent « fichier de stockage » est juste un fichier dans la mesure où le système d'exploitation est concerné, mais je pourrais être mal compris la nature de la terminologie.)

  

Créer un nouveau fichier de stockage vide pour   la relation, et l'affecter comme   valeur relfilenode. Le vieux stockage   fichier est prévu pour la suppression à   engager.

Comme il semble être la suppression d'un fichier, je peux imaginer des cas où le système d'exploitation sous-jacent pourrait ne pas libérer immédiatement cet espace. Je suppose que, dans certains cas, le fichier de stockage peut se retrouver dans le bac de recyclage sous Windows, par exemple. Mais dans mon cas, tronquer une table sous PostgreSQL 9.something augmenté immédiatement sous Windows freespace.

troncature est également enregistré dans le journal WAL. Je ne sais pas comment beaucoup d'effet qui pourrait avoir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top