J'utilise postgres (postgis) 9.4.2 sur un mac (10.10.4).
J'ai quelques grandes tables (plusieurs To).
Au cours de la construction d'un index sur l'un d'entre eux, qui prend environ une semaine, j'ai vu l'espace HD disponible chuter comme vous vous attendez à presque le point où l'index serait terminé lorsqu'une panne de courant a duré plus longtemps que l'unité de batterie et le système est descendu. J'ai eu des tampons hors tension, et fillfactor=100
pendant la construction car c'est une source de données statique. Au redémarrage, l'espace disponible restant sur le lecteur est exactement là où il se trouvait à la fin de la génération de l'index. L'analyse sous vide ne libère pas l'espace.
J'ai essayé de laisser tomber la table et de ré-ingérer, et cela n'a pas laissé de place. Maintenant, je suis à un endroit où je n'ai pas assez d'espace pour construire l'index.
Les fichiers générés lors de la construction de l'index sont-ils coincés dans des limbes où ils ne peuvent pas être supprimés par le système en raison de la panne de la machine pendant la panne de courant?
Quand je regarde les tailles de table + les index dans la base de données (qui sont les seules données sur ce lecteur), ils totalisent environ 6 To . Le disque est de 8 To , et il reste moins de 500 Go sur le disque, il semble donc qu'il y ait environ 1,5 To perdu quelque part, ce qui correspond à la taille de cet index.
Des idées?
SELECT indexrelid::regclass, indrelid::regclass FROM pg_catalog.pg_index WHERE NOT indisvalid;
vous donne?
SELECT r.relname, r.relkind, n.nspname FROM pg_class r INNER JOIN pg_namespace n ON r.relnamespace = n.oid WHERE relkind = 'i';