Cca olan birkaç tablo ile yerel 9.1 veritabanı kurulumum var. 300 milyon kayıt ve veri tabanı 20 GB'a çıktı. Daha sonra delete from
ondan tüm kayıtları silmek için emir verdim (kullanmalıydım truncate
ama bunu bilmiyordum). Bu yüzden disk alanını yeniden kazanmak için db'm üzerinde tam bir boşluk bıraktım, ancak işe yaramıyor. Benim sorunum aynı görünüyor bu bir , ama sağlanan hiçbir çözüm yoktur. Bu konuyu ve belgelerini "disk alanını kurtarma" konusunda zaten kontrol ettim , ancak yine de bir çözüm bulamadım. Tüm tabloların boyutunu almak için bu kodu kullanıyorum
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;
Ancak, toplam 1 GB’dan az
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database
hala yaklaşık 20 GB gösterir. Herhangi bir tavsiye çok takdir etmek.
pg_catalog
ve tablolarıinformation_schema
. BuWHERE
maddede belirtilen kısıtlamaları kaldırarak bunlardan herhangi biri olup olmadığını görmeyi deneyin . Lütfen tam PostgreSQL versiyonunuzu (SELECT version()
) ve "tam veritabanını doldurmak" için tam olarak ne yaptığınızı, yani tam komutunuzu gösterin . Mümkünse, çalıştırınVACUUM FULL VERBOSE;
(bağımsız değişken yok) ve çıktıyı bir yere yapıştırın, sonra buraya bağlayın.