हमारे पास प्रत्येक वाल सेगमेंट को संपीड़ित करने और इसे S3 में भेजने के लिए निरंतर संग्रह के साथ एक अपेक्षाकृत कम मात्रा वाला पोस्टग्रैज डेटाबेस है। क्योंकि यह एक कम-वॉल्यूम प्रणाली है, यह archive_timeoutहर 10 मिनट या तो हिट करता है और ज्यादातर-अप्रयुक्त वाल सेगमेंट को संग्रहीत करता है, जो बहुत अच्छी तरह से संपीड़ित करता था क्योंकि यह ज्यादातर सिर्फ शून्य था।
हालांकि, Postgres प्रत्येक वाल स्विच में नई फ़ाइलों को आवंटित करने की लागत से बचने के लिए अपने वाल सेगमेंट को पुन: चक्रित करता है, जो एक उच्च-लोड की स्थिति में उपयोगी है, लेकिन इसका मतलब है कि भारी-से-सामान्य गतिविधि के फटने के बाद हमारी वाल खंड फाइलें अब भरी हुई हैं पिछले खंडों से रद्दी की और बहुत अच्छी तरह से संपीड़ित न करें। हम इस सभी कबाड़ की बहुत सारी प्रतियां जमा कर रहे हैं।
क्या हमारे वाल संग्रह को रखने के लिए हम जिस स्थान का उपयोग कर रहे हैं, उसकी मात्रा को कम करने का कोई तरीका है? कुछ दत्तक ग्रहण संभावनाएँ:
वाल सेगमेंट को किसी भी तरह से रिसाइकिल करने से रोकें, इसलिए यह हर बार शून्य फ़ाइल के साथ शुरू होता है। डॉक्स यह नहीं दर्शाता है कि ऐसा करने के लिए एक विकल्प है, लेकिन मैं इसे याद कर सकता हूं।
जब इसका उपयोग करना शुरू / खत्म हो जाए, तो वील सेगमेंट फ़ाइल को शून्य कर दें। फिर, डॉक्स यह सुझाव नहीं देता है कि यह संभव है।
बाहरी शून्य शून्य या कुछ सेगमेंट फ़ाइलों को हटा दें, जबकि वे उपयोग में नहीं हैं। क्या यह निर्धारित करने का एक सुरक्षित तरीका है कि यह कौन सी फाइल है?
pg_xlogdumpकबाड़ शुरू होने से पहले आउटपुट का उपयोग करने से पहले खंड के अप्रयुक्त हिस्से को शून्य करें जहां से कबाड़ शुरू होता है। संभव है, हालाँकि मुझे यह पसंद नहीं है। कम से कम आर्काइव कमांड में ऐसा करने से आप यह सुनिश्चित कर सकते हैं कि पोस्टग्रेज फ़ाइल का पुन: उपयोग करने वाला नहीं है।केवल खंड फ़ाइल के उपयोग किए गए भाग को संग्रहीत करें, फिर से
pg_xlogdumpकिसी तरह के आउटपुट की व्याख्या करके , और फिर इसे जीरो के साथ पुनर्स्थापित करने के दौरान पैड करें। हालांकि यह संभव लगता है, हालांकि मैं वास्तव में इसे पसंद नहीं करता।