Ich verwende postgres (postgis) 9.4.2 auf einem Mac (10.10.4).
Ich habe ein paar große Tische (mehrere TBs).
Während eines Indexaufbaus auf einem von ihnen, der ungefähr eine Woche dauert, habe ich beobachtet, wie der verfügbare HD-Speicherplatz fast bis zu dem Punkt gesunken ist, an dem der Index beendet wäre, wenn ein Stromausfall länger andauerte als die Batterieeinheit und das System ging runter. Ich hatte Puffer ausgeschaltet und fillfactor=100
während des Builds, da es sich um eine statische Datenquelle handelt. Beim Neustart befindet sich der verfügbare Speicherplatz auf dem Laufwerk genau dort, wo er sich fast am Ende der Indexerstellung befand. Die Vakuumanalyse gibt keinen Platz frei.
Ich habe versucht, den Tisch fallen zu lassen und wieder aufzunehmen, und das hat den Platz nicht verloren. Jetzt bin ich an einem Ort, an dem ich nicht genug Platz habe, um den Index zu erstellen.
Befinden sich die während der Indexerstellung generierten Dateien in einer Schwebe, in der sie vom System nicht entfernt werden können, da der Computer während des Stromausfalls ausgefallen ist?
Wenn ich mir die Tabellengrößen + Indizes in der Datenbank ansehe (das sind die einzigen Daten auf diesem Laufwerk), summieren sie sich auf ungefähr 6 TB . Der Antrieb ist 8TB , und es gibt weniger als 500 GB auf dem Laufwerk links, so dass es dort die etwa die Größe ist ist etwa 1,5 TB verloren irgendwo scheint , dass Index gewesen wäre.
Irgendwelche Ideen?
SELECT indexrelid::regclass, indrelid::regclass FROM pg_catalog.pg_index WHERE NOT indisvalid;
das Ihnen gibt?
SELECT r.relname, r.relkind, n.nspname FROM pg_class r INNER JOIN pg_namespace n ON r.relnamespace = n.oid WHERE relkind = 'i';