मेरे पास कुछ टेबल के साथ 9.1 डेटाबेस की स्थानीय स्थापना है जिसमें cca था। 300 mio रिकॉर्ड और डेटाबेस लगभग 20 GB तक बढ़ गया। बाद में मैंने delete fromइसे से सभी रिकॉर्ड को हटाने के लिए आदेश जारी किया (मुझे इसका उपयोग करना चाहिए truncateथा, लेकिन मुझे यह नहीं पता था)। इसलिए मैंने डिस्क स्थान को पुनः प्राप्त करने के लिए अपने db पर पूर्ण वैक्यूम किया, लेकिन यह सिर्फ मदद नहीं करता है। मेरी समस्या के समान लगता है यह एक है, लेकिन वहाँ प्रदान की कोई समाधान नहीं है। मैंने पहले ही इस थ्रेड और प्रलेखन को "डिस्क स्थान को पुनर्प्राप्त करने " पर जांच लिया है , लेकिन फिर भी इसका समाधान नहीं मिल रहा है। मैं सभी तालिकाओं का आकार प्राप्त करने के लिए इस कोड का उपयोग करता हूं
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;
हालांकि, 1GB से भी कम के लिए कुल
SELECT pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database
अभी भी लगभग 20 जीबी दिखाता है। किसी भी सलाह बहुत सराहना की।
pg_catalogऔर तालिकाओं मेंinformation_schema। इसलिए यह देखने का प्रयास करें कि क्या यह उन खंडों में से कोई प्रतिबंध हटाकर उनमें से कोईWHEREहै। कृपया अपना सटीक PostgreSQL संस्करण (SELECT version()) दिखाएं और वास्तव में आप "पूर्ण डेटाबेस को वैक्यूम करें" यानी सटीक कमांड क्या कर रहे हैं। यदि संभव हो, तो रनVACUUM FULL VERBOSE;(कोई तर्क नहीं) करें और आउटपुट को कहीं पेस्ट करें फिर यहां लिंक करें।