Estou executando o postgres (postgis) 9.4.2 em um mac (10.10.4).
Eu tenho algumas mesas grandes (várias TBs).
Durante uma construção de índice em uma delas que leva cerca de uma semana, observei o espaço disponível em HD cair, como seria de esperar quase no ponto em que o índice seria concluído quando uma falta de energia durasse mais que a unidade de bateria e o sistema foi abaixo. Eu tive buffers off e fillfactor=100
durante a compilação, pois é uma fonte de dados estática. Na reinicialização, o espaço disponível restante na unidade está exatamente onde estava quase no final da compilação do índice. A análise a vácuo não libera espaço.
Tentei largar a mesa e reinserir, e isso não deixou espaço. Agora estou em um lugar onde não tenho espaço suficiente para criar o índice.
Os arquivos gerados durante a compilação do índice estão presos em algum limbo em que não podem ser removidos pelo sistema devido à maneira como a máquina caiu durante a queda de energia?
Quando olho para os tamanhos de tabela + índices no banco de dados (que são os únicos dados nessa unidade), eles somam cerca de 6 TB . A unidade possui 8 TB e restam menos de 500 GB na unidade, portanto parece que há cerca de 1,5 TB perdidos em algum lugar, aproximadamente o tamanho que esse índice teria.
Alguma ideia?
SELECT indexrelid::regclass, indrelid::regclass FROM pg_catalog.pg_index WHERE NOT indisvalid;
lhe dê?
SELECT r.relname, r.relkind, n.nspname FROM pg_class r INNER JOIN pg_namespace n ON r.relnamespace = n.oid WHERE relkind = 'i';