pg_start_backupचेकपोस्ट प्रदर्शन करेगा, डीज़ो नोट्स के रूप में। इसका प्रभाव पड़ता है, लेकिन आपका डेटाबेस वैसे भी नियमित रूप से चौकियों का प्रदर्शन करता है, और कार्य करने के लिए ऐसा करना चाहिए, इसलिए वे स्पष्ट रूप से आपके लिए कोई समस्या नहीं हैं। एक प्रारंभिक चेकपॉइंट का मतलब है कि कम डेटा जमा हुआ है, जिसका अर्थ है कि अगर कुछ भी चेकप्वाइंट pg_start_backupसामान्य से कम प्रभाव होगा।
जहाँ आपको चिंता करने की आवश्यकता है वह है rsync या समकक्ष pg_basebackupचरण। इससे पढ़ा गया I / O बहुत ज्यादा खराब नहीं होगा क्योंकि यह अनुक्रमिक है, लेकिन यह अभी भी संभवतः आपके डेटाबेस के I / O प्रदर्शन को काफी नुकसान पहुंचाएगा, और यह रैम कैश के गर्म डेटा को कम के पक्ष में धकेल देगा। -उपयोग किया गया डेटा, जिसके कारण कैश को अधिक आवश्यक डेटा के रूप में पिरोया जाता है, फिर वापस पढ़ा जाता है।
आप I / O प्रभाव (लेकिन कैश प्रभाव नहीं) को सीमित करने के लिए उपयोग कर सकते हैं niceऔर कर सकते हैं ionice; हालाँकि, इसके लिए एक लागत है। बैकअप अधिक समय लेगा, और जब तक आप बैकअप को पूरा नहीं करते हैं और pg_stop_backupआपका सिस्टम चलता है - जैसा कि मैं इसे समझता हूं - वॉल्यू को संचित करना, इसे डिलीट नहीं कर सकता, बैकअप रन के अंत में BIG चेकपॉइंट के लिए चेकपॉइंट ऋण जमा करना और तालिका और इंडेक्स जमा करना है ब्लोट क्योंकि यह मृत पंक्तियों को साफ नहीं कर सकता है। तो आप वास्तव में हमेशा के लिए बैकअप लेने का जोखिम नहीं उठा सकते हैं, खासकर यदि आपके पास बहुत अधिक मंथन टेबल हैं।
अंत में, यह कहना मुश्किल है कि क्या आप अपने वातावरण में सुरक्षित रूप से pg_start_backupऔर pg_stop_backupहॉट बैकअप के लिए उपयोग कर सकते हैं । अधिकांश लोग कर सकते हैं, लेकिन यदि आप अपने हार्डवेयर के किनारे के करीब हैं, तो समय की आवश्यकताओं को पूरा कर सकते हैं, स्टाल के जोखिम को बर्दाश्त नहीं कर सकते हैं, और बहुत उच्च तालिकाओं के साथ-साथ बहुत बड़ी तालिकाओं को भी परेशान कर सकते हैं, यह परेशानी हो सकती है। ।
दुर्भाग्य से, आपको इसका परीक्षण करने और देखने की बहुत आवश्यकता है।
यदि आप कर सकते हैं, तो यह CHECKPOINTआपके डेटाबेस के एलवीएम, आपके सैन के टूल्स, ईबीएस, या जो भी आप कर रहे हैं, का उपयोग करने के बजाय वॉल्यूम का परमाणु स्नैपशॉट जारी करने के लायक हो सकता है । यदि आप ऐसा कर सकते हैं, तो आप स्नैपशॉट को अपने अवकाश पर कॉपी कर सकते हैं। यह दृष्टिकोण पीआईटीआर / वार्म स्टैंडबाय / हॉट स्टैंडबाय के लिए आधार बैकअप लेने के लिए उपयुक्त नहीं है, लेकिन यह एक स्थिर बैकअप कॉपी के लिए पूरी तरह से अच्छा है, और सिस्टम पर बहुत कम प्रभाव डालता है। आप इसे केवल तभी कर सकते हैं जब आपका स्नैपशॉट परमाणु हो और वाल सहित आपका पूरा डेटाबेस एकल वॉल्यूम पर हो।
एक संभावना है कि मैंने अभी तक जांच नहीं की है दो दृष्टिकोणों का संयोजन है। यह मेरे लिए होता है कि एक संभवतः (सकता है अपरीक्षित और संभवतः गलत और असुरक्षित , मैं अभी तक पता नहीं है):
pg_start_backup
- सभी तालिकाओं के ट्रिगर स्नैपशॉट, मुख्य डेटाडियर और ज़्लॉग वॉल्यूम
pg_stop_backup
- से अंतिम संग्रह तक वाल कॉपी करें
pg_stop_backup
- स्नैपशॉट किए गए वॉल्यूम से डेटा की प्रतिलिपि बनाएँ
अनिवार्य रूप से, यह विचार करना कम करना है कि कब तक DB को प्रत्येक वॉल्यूम के पॉइंट-इन-टाइम लेने से अपनी चौकियों को विलंबित करना पड़ता है जिसे आप अपने अवकाश पर कॉपी कर सकते हैं।