“यह कहना विरोधाभासी है, फिर भी सच है, जितना अधिक हम जानते हैं, हम पूर्ण अर्थ में उतने ही अधिक अज्ञानी होते जाते हैं, क्योंकि केवल ज्ञान के माध्यम से ही हम अपनी सीमाओं के प्रति सचेत होते हैं। बौद्धिक विकास के सबसे संतुष्टिदायक परिणामों में से एक सटीक रूप से नई और बड़ी संभावनाओं का निरंतर उद्घाटन है।" निकोला टेस्ला
PostgreSQL एक अद्भुत परियोजना है और यह एक अद्भुत दर से विकसित होती है। हम ब्लॉग पोस्ट की एक श्रृंखला के साथ PostgreSQL के सभी संस्करणों में दोष सहनशीलता क्षमताओं के विकास पर ध्यान केंद्रित करेंगे।
संक्षेप में PostgreSQL
PostgreSQL अपने स्वभाव से दोष-सहिष्णु है। सबसे पहले, यह एक उन्नत ओपन सोर्स डेटाबेस प्रबंधन प्रणाली है और इस वर्ष अपना 20 वां जन्मदिन मनाएगा। इसलिए यह एक सिद्ध तकनीक है और इसमें एक सक्रिय समुदाय है, जिसकी बदौलत इसमें तेजी से विकास हो रहा है।
PostgreSQL SQL-संगत है (एसक्यूएल:2011) और पूरी तरह से एसिड-संगत (परमाणुता, संगति, अलगाव, स्थायित्व)।
PostgreSQL भौतिक और तार्किक प्रतिकृति की अनुमति देता है और इसमें अंतर्निहित भौतिक और तार्किक प्रतिकृति समाधान हैं। हम गलती सहनशीलता के संबंध में PostgreSQL में प्रतिकृति विधियों (अगले ब्लॉग पोस्ट पर) के बारे में बात करेंगे।
PostgreSQL सिंक्रोनस और एसिंक्रोनस लेनदेन, PITR (प्वाइंट-इन-टाइम रिकवरी) और MVCC (मल्टीवर्सन कंसीडर कंट्रोल) की अनुमति देता है। ये सभी अवधारणाएँ किसी न किसी स्तर पर दोष सहिष्णुता से संबंधित हैं और मैं PostgreSQL में आवश्यक शर्तों और उनके अनुप्रयोगों की व्याख्या करते हुए उनके प्रभावों की व्याख्या करने का प्रयास करूँगा।
PostgreSQL मजबूत है!
डेटाबेस पर सभी कार्रवाइयां लेनदेन . के अंतर्गत की जाती हैं , एक लेन-देन लॉग . द्वारा सुरक्षित जो सॉफ़्टवेयर के विफल होने की स्थिति में स्वचालित क्रैश पुनर्प्राप्ति निष्पादित करेगा।
डेटाबेस को वैकल्पिक रूप से डेटा ब्लॉक चेकसम . के साथ बनाया जा सकता है हार्डवेयर दोषों का निदान करने में मदद करने के लिए। विस्तृत पुनर्प्राप्ति की आवश्यकता के मामले में, पूर्ण और विस्तृत PITR के साथ कई बैकअप तंत्र मौजूद हैं। विभिन्न प्रकार के नैदानिक उपकरण उपलब्ध हैं।
डेटाबेस प्रतिकृति मूल रूप से समर्थित है। तुल्यकालिक प्रतिकृति “5 नाइन” (99.999 प्रतिशत) . से अधिक प्रदान कर सकता है उपलब्धता और डेटा सुरक्षा, अगर ठीक से कॉन्फ़िगर और प्रबंधित किया जाता है।
उपरोक्त तथ्यों को ध्यान में रखते हुए हम आसानी से दावा कर सकते हैं कि PostgreSQL मजबूत है!
PostgreSQL दोष सहिष्णुता:वाल
आगे लिखें लॉगिंग PostgreSQL के लिए मुख्य दोष सहिष्णुता प्रणाली है।
वाल PostgreSQL डेटा निर्देशिका के pg_xlog उपनिर्देशिका में लिखी गई बाइनरी फ़ाइलों की एक श्रृंखला शामिल है। डेटाबेस में किए गए प्रत्येक परिवर्तन को पहले WAL में दर्ज किया जाता है, इसलिए "लेन-देन लॉग" के पर्याय के रूप में "राइट-फॉरवर्ड" लॉग नाम दिया गया है। जब कोई लेन-देन होता है, तो डिफ़ॉल्ट और सुरक्षित व्यवहार WAL रिकॉर्ड को डिस्क पर बाध्य करने के लिए होता है।
यदि PostgreSQL क्रैश हो जाता है, तो WAL को फिर से चलाया जाएगा, जो डेटाबेस को अंतिम प्रतिबद्ध लेनदेन के बिंदु पर लौटाता है, और इस प्रकार किसी भी डेटाबेस परिवर्तन के स्थायित्व को सुनिश्चित करता है।
लेनदेन? प्रतिबद्ध?
डेटाबेस परिवर्तन स्वयं लेन-देन प्रतिबद्ध पर डिस्क पर नहीं लिखे जाते हैं। उन परिवर्तनों को कुछ समय बाद पृष्ठभूमि लेखक या चेकपॉइंटर द्वारा एक अच्छी तरह से ट्यून किए गए सर्वर पर डिस्क पर लिखा जाता है। (उपरोक्त वाल विवरण की जांच करें। )
लेन-देन सभी डेटाबेस सिस्टम की एक मूलभूत अवधारणा है। लेन-देन का अनिवार्य बिंदु यह है कि यह एक एकल, सभी या कुछ नहीं के संचालन में कई चरणों को बंडल करता है।
चरणों के बीच मध्यवर्ती राज्य अन्य समवर्ती लेनदेन के लिए दृश्यमान नहीं हैं, और यदि कुछ विफलता होती है जो लेनदेन को पूरा करने से रोकती है, तो कोई भी चरण डेटाबेस को बिल्कुल भी प्रभावित नहीं करता है। PostgreSQL डर्टी-रीड्स का समर्थन नहीं करता (लेनदेन एक समवर्ती अप्रतिबद्ध लेनदेन द्वारा लिखा गया डेटा पढ़ता है )।
चेकपॉइंट
क्रैश पुनर्प्राप्ति WAL को फिर से चलाती है, लेकिन यह किस बिंदु से पुनर्प्राप्त करना प्रारंभ करती है?
वाल में उन बिंदुओं से पुनर्प्राप्ति शुरू होती है जिन्हें चौकियों . के रूप में जाना जाता है . क्रैश पुनर्प्राप्ति की अवधि अंतिम चेकपॉइंट के बाद से लेन-देन लॉग में परिवर्तनों की संख्या पर निर्भर करती है। चेकपॉइंट पुनर्प्राप्ति के लिए एक ज्ञात सुरक्षित प्रारंभिक बिंदु है, क्योंकि यह गारंटी देता है कि डेटाबेस में पिछले सभी परिवर्तन डिस्क पर पहले ही लिखे जा चुके हैं।
एक चेकपॉइंट तत्काल . हो सकता है या अनुसूचित . तत्काल चौकियों को एक सुपरयूज़र की कुछ क्रियाओं द्वारा ट्रिगर किया जाता है, जैसे कि CHECKPOINT
आदेश या अन्य; निर्धारित चौकियों को PostgreSQL द्वारा स्वचालित रूप से तय किया जाता है।
निष्कर्ष
इस ब्लॉग पोस्ट में हमने PostgreSQL की महत्वपूर्ण विशेषताओं को सूचीबद्ध किया है जो PostgreSQL में दोष सहिष्णुता से संबंधित हैं। हमने राइट-फॉरवर्ड लॉगिंग, ट्रांजेक्शन, कमिट, आइसोलेशन लेवल, चेकपॉइंट्स और क्रैश रिकवरी का उल्लेख किया है। हम अगले ब्लॉग पोस्ट में PostgreSQL प्रतिकृति के साथ जारी रखेंगे।
संदर्भ:
पोस्टग्रेएसक्यूएल दस्तावेज़ीकरण
PostgreSQL 9 व्यवस्थापन कुकबुक - दूसरा संस्करण