Я запускаю postgres (postgis) 9.4.2 на mac (10.10.4).
У мене є кілька великих столів (кілька туберкульозів).
Під час збирання індексу на одному з них, який займає близько тижня, я спостерігав, як доступний простір високої чіткості зменшився, як можна було б сподіватися, що майже до того моменту, коли індекс закінчиться, коли відключення електроенергії триватиме довше, ніж блок батареї та системи спустився. У мене були відключені буфери, і fillfactor=100
під час збирання, оскільки це статичний джерело даних. Під час перезавантаження наявний простір, що залишився на диску, знаходиться саме там, де він був майже в кінці збірки індексу. Вакуумний аналіз не звільняє простір.
Я спробував скинути стіл і повторно в'їсти, і це не втратило місця. Тепер я перебуваю на місці, де мені не вистачає місця для складання індексу.
Чи застрягли файли, згенеровані під час збирання індексу, у якійсь новій частині, де система їх не може видалити через те, як машина вийшла з ладу під час відключення живлення?
Коли я дивлюся на розміри таблиць + індекси в db (що є єдиними даними на цьому диску), вони складають приблизно 6TB . Привід становить 8 ТБ , і на диску він залишився менше 500 Гб , тому, здається, десь втрачено близько 1,5 ТБ, що приблизно за розмір, який би був індекс.
Будь-які ідеї?
SELECT indexrelid::regclass, indrelid::regclass FROM pg_catalog.pg_index WHERE NOT indisvalid;
дає вам?
SELECT r.relname, r.relkind, n.nspname FROM pg_class r INNER JOIN pg_namespace n ON r.relnamespace = n.oid WHERE relkind = 'i';