Eu tenho instalação local do banco de dados 9.1 com poucas tabelas que tinham cca. 300 milhões de registros e o banco de dados cresceu para cerca de 20 GB. Posteriormente, emiti um delete from
comando para excluir todos os registros dele (eu deveria ter usado truncate
, mas não sabia disso). Então, fiz o vácuo total no meu banco de dados para recuperar o espaço em disco, mas isso simplesmente não ajuda. Meu problema parece idêntico a este , mas não há solução fornecida. Eu já verifiquei este tópico e documentação em "recuperando espaço em disco" , mas ainda não consigo encontrar uma solução. Eu uso esse código para obter o tamanho de todas as tabelas
SELECT nspname || '.' || relname AS "relation",
pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 15;
Totalizando menos de 1 GB, no entanto
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database
ainda mostra cerca de 20 GB. Qualquer conselho muito apreciado.
pg_catalog
e tabelasinformation_schema
. Portanto, tente ver se é algum deles removendo essas restrições naWHERE
cláusula. Por favor, mostre sua versão exata do PostgreSQL (SELECT version()
) e o que exatamente você está fazendo para "aspirar o banco de dados completo", ou seja, o comando exato. Se possível, executeVACUUM FULL VERBOSE;
(sem argumentos) e cole a saída em algum lugar e vincule-a aqui.