PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL के लिए शीर्ष PG क्लस्टरिंग उच्च उपलब्धता समाधान

यदि आपका सिस्टम PostgreSQL पर निर्भर है और आप उच्च उपलब्धता के लिए क्लस्टरिंग समाधान ढूंढ रहे हैं, तो हम आपको पहले ही बता देना चाहते हैं कि यह एक जटिल कार्य है लेकिन इसे प्राप्त करना असंभव नहीं है।

गलती सहनशीलता के लिए आपकी आवश्यकताओं को ध्यान में रखते हुए, चुनने के लिए यहां कुछ उच्च उपलब्धता क्लस्टरिंग समाधान दिए गए हैं जो मदद कर सकते हैं।

PostgreSQL मूल रूप से MySQL या Oracle जैसे किसी भी मल्टी-मास्टर क्लस्टरिंग समाधान का समर्थन नहीं करता है। फिर भी, कई वाणिज्यिक और सामुदायिक उत्पाद इस कार्यान्वयन की पेशकश करते हैं, जिसमें PostgreSQL के लिए प्रतिकृति और लोड संतुलन शामिल है।

शुरू करने के लिए, आइए कुछ बुनियादी अवधारणाओं की समीक्षा करें:

उच्च उपलब्धता क्या है?

उच्च उपलब्धता से तात्पर्य किसी सेवा के उपलब्ध होने में लगने वाले समय से है और आमतौर पर इसे व्यवसाय के सहमत प्रदर्शन के स्तर से परिभाषित किया जाता है।

अतिरेक उच्च उपलब्धता का आधार है; किसी घटना की स्थिति में, आप बिना किसी समस्या के सिस्टम को संचालित और एक्सेस करना जारी रख सकते हैं।

सतत पुनर्प्राप्ति

जब कोई घटना होती है, यदि आपको बैकअप को पुनर्स्थापित करना है और फिर WAL (राइट-अहेड लॉगिंग) लॉग लागू करना है, तो पुनर्प्राप्ति समय बहुत अधिक होगा, और यह अत्यधिक उपलब्ध नहीं होगा।

हालांकि, यदि आपके पास बैकअप और लॉग किसी आकस्मिक सर्वर में संग्रहीत हैं, तो आप लॉग के आते ही उन्हें लागू कर सकते हैं। अगर लॉग भेजे जाते हैं और हर मिनट लागू होते हैं, तो आकस्मिक आधार निरंतर पुनर्प्राप्ति में होगा और अधिकतम एक मिनट के उत्पादन के लिए पुरानी स्थिति होगी।

स्टैंडबाय डेटाबेस

एक स्टैंडबाय डेटाबेस का विचार एक उत्पादन डेटाबेस की एक प्रति रखना है जिसमें हमेशा एक ही डेटा होता है और किसी घटना के मामले में उपयोग के लिए तैयार होता है।

स्टैंडबाय डेटाबेस को वर्गीकृत करने के कई तरीके हैं।

प्रतिकृति की प्रकृति से:

  • भौतिक स्टैंडबाय:डिस्क ब्लॉक कॉपी किए जाते हैं।

  • तार्किक स्टैंडबाय:डेटा परिवर्तन की स्ट्रीमिंग।

लेन-देन की समकालिकता से:

  • एसिंक्रोनस:डेटा हानि की संभावना है।

  • सिंक्रोनस:डेटा हानि की कोई संभावना नहीं है; मास्टर में कमिट स्टैंडबाय की प्रतिक्रिया की प्रतीक्षा करते हैं।

उपयोग से:

  • गर्म स्टैंडबाय:वे कनेक्शन का समर्थन नहीं करते हैं।

  • हॉट स्टैंडबाय:केवल-पढ़ने के लिए कनेक्शन का समर्थन करें।

क्लस्टर

एक क्लस्टर एक साथ काम करने वाले और एक के रूप में देखे जाने वाले मेजबानों का एक समूह है। यह क्षैतिज मापनीयता और सर्वरों को जोड़कर अधिक कार्य को संसाधित करने की क्षमता प्राप्त करने का एक तरीका प्रदान करता है।

यह एक नोड की विफलता का विरोध कर सकता है और पारदर्शी रूप से काम करना जारी रख सकता है। जो साझा किया जाता है, उसके आधार पर दो क्लस्टर मॉडल होते हैं:

  • साझा संग्रहण:सभी नोड समान जानकारी के साथ समान संग्रहण तक पहुंचते हैं।

  • साझा कुछ भी नहीं:प्रत्येक नोड का अपना भंडारण होता है, जिसमें अन्य के समान जानकारी हो भी सकती है और नहीं भी हो सकती है। नोड्स, हमारे सिस्टम की संरचना के आधार पर।

आइए अब PostgreSQL में हमारे पास मौजूद कुछ क्लस्टरिंग विकल्पों की समीक्षा करें।

डिस्ट्रिब्यूटेड रेप्लिकेटेड ब्लॉक डिवाइस

DRBD एक Linux कर्नेल मॉड्यूल है जो नेटवर्क का उपयोग करके सिंक्रोनस ब्लॉक प्रतिकृति को लागू करता है। यह वास्तव में एक क्लस्टर को लागू नहीं करता है और विफलता या निगरानी को नहीं संभालता है। इसके लिए आपको पूरक सॉफ़्टवेयर की आवश्यकता है, उदाहरण के लिए, Corosync + Pacemaker + DRBD।

उदाहरण:

  • Corosync:होस्ट के बीच संदेशों को हैंडल करता है।

  • पेसमेकर:सेवाओं को शुरू और बंद करता है, यह सुनिश्चित करते हुए कि वे केवल एक होस्ट पर चलती हैं।

  • DRBD:ब्लॉक डिवाइस के स्तर पर डेटा को सिंक्रोनाइज़ करता है।

ClusterControl

ClusterControl डेटाबेस क्लस्टर के लिए एक एजेंट रहित प्रबंधन और स्वचालन सॉफ्टवेयर है। यह आपके डेटाबेस सर्वर/क्लस्टर को सीधे उसके यूजर इंटरफेस से तैनात, मॉनिटर, प्रबंधित और स्केल करने में मदद करता है। यह डेटाबेस सर्वर या क्लस्टर को बनाए रखने के लिए आवश्यक अधिकांश प्रशासन कार्यों को संभाल सकता है।

ClusterControl के साथ, आप यह कर सकते हैं:

  • अपनी पसंद के प्रौद्योगिकी स्टैक पर स्टैंडअलोन, प्रतिरूपित या क्लस्टर किए गए डेटाबेस को परिनियोजित करें।

  • पॉलीग्लॉट डेटाबेस और डायनेमिक इन्फ्रास्ट्रक्चर में समान रूप से विफलताओं, पुनर्प्राप्ति और दिन-प्रतिदिन के कार्यों को स्वचालित करें।

  • मैन्युअल रूप से पूर्ण या वृद्धिशील बैकअप बनाएं या उन्हें शेड्यूल करें।

  • अपने संपूर्ण डेटाबेस और सर्वर इंफ्रास्ट्रक्चर की एकीकृत और व्यापक रीयल-टाइम मॉनिटरिंग करें।

  • एक ही क्रिया के साथ आसानी से नोड जोड़ें या निकालें।

  • अपने क्लस्टर को किसी अन्य डेटा सेंटर/क्लाउड प्रदाता पर क्लोन करें

यदि आपके पास PostgreSQL पर कोई घटना है, तो आपके स्टैंडबाय नोड को स्वचालित रूप से प्राथमिक में पदोन्नत किया जा सकता है।

यह एक संपूर्ण टूल है जो कांच के एकल फलक के माध्यम से पूर्ण-ऑप्स जीवनचक्र प्रबंधन और स्वचालन प्रदान करता है। ClusterControl 30-दिन का निःशुल्क परीक्षण भी प्रदान करता है ताकि आप इसका मूल्यांकन कर सकें, कोई स्ट्रिंग संलग्न नहीं है।

रूबरेप

Rubyrep एसिंक्रोनस, मल्टी-मास्टर, मल्टी-प्लेटफ़ॉर्म प्रतिकृति (Ruby या JRuby में कार्यान्वित) और मल्टी-DBMS (MySQL या PostgreSQL) प्रदान करने वाला एक समाधान है।

यह ट्रिगर पर आधारित है, और यह DDL, उपयोगकर्ताओं या अनुदानों का समर्थन नहीं करता है। उपयोग और प्रशासन की सरलता इसका प्राथमिक उद्देश्य है।

कुछ विशेषताओं में शामिल हैं:

  • सरल कॉन्फ़िगरेशन

  • सरल स्थापना

  • प्लेटफ़ॉर्म स्वतंत्र, टेबल डिज़ाइन स्वतंत्र।

पगपूल-द्वितीय

Pgpool-II एक मिडलवेयर है जो PostgreSQL सर्वर और PostgreSQL डेटाबेस क्लाइंट के बीच काम करता है।

कुछ विशेषताओं में शामिल हैं:

  • कनेक्शन पूल

  • प्रतिकृति

  • लोड संतुलन

  • स्वचालित विफलता

  • समानांतर क्वेरी

इसे स्ट्रीमिंग प्रतिकृति के शीर्ष पर कॉन्फ़िगर किया जा सकता है:

बुकार्डो

बुकार्डो एसिंक्रोनस कैस्केडिंग मास्टर-स्लेव प्रतिकृति, पंक्ति-आधारित, डेटाबेस में ट्रिगर्स और क्यूइंग का उपयोग करते हुए, और एसिंक्रोनस मास्टर-मास्टर प्रतिकृति, पंक्ति-आधारित, ट्रिगर्स का उपयोग करके और अनुकूलित संघर्ष समाधान प्रदान करता है।

बुकार्डो को एक समर्पित डेटाबेस की आवश्यकता होती है और यह एक पर्ल डेमॉन के रूप में चलता है जो इस डेटाबेस और प्रतिकृति में शामिल अन्य सभी डेटाबेस के साथ संचार करता है। यह मल्टी-मास्टर या मल्टी-स्लेव के रूप में चल सकता है।

मास्टर-स्लेव प्रतिकृति में एक या अधिक स्रोत शामिल होते हैं जो एक या अधिक लक्ष्यों पर जाते हैं। स्रोत PostgreSQL होना चाहिए, लेकिन लक्ष्य PostgreSQL, MySQL, Redis, Oracle, MariaDB, SQLite, या MongoDB हो सकते हैं।

कुछ विशेषताओं में शामिल हैं:

  • लोड संतुलन

  • गुलाम सीमित नहीं हैं और लिखे जा सकते हैं

  • आंशिक प्रतिकृति

  • मांग पर प्रतिकृति (परिवर्तन स्वचालित रूप से या वांछित होने पर धक्का दिया जा सकता है)

  • त्वरित सेटअप के लिए दासों को "पूर्व-गर्म" किया जा सकता है

कमियां:

  • डीडीएल को संभाल नहीं सकता

  • बड़ी वस्तुओं को संभाल नहीं सकता

  • एक अद्वितीय कुंजी के बिना तालिकाओं को क्रमिक रूप से दोहराना नहीं कर सकता

  • Postgres 8 से पुराने संस्करणों पर काम नहीं करेगा

पोस्टग्रेस-एक्ससी

Postgres-XC राइट-स्केलेबल, सिंक्रोनस, सिमेट्रिक और पारदर्शी PostgreSQL क्लस्टर समाधान प्रदान करने के लिए एक ओपन-सोर्स प्रोजेक्ट है। यह कसकर युग्मित डेटाबेस घटकों का एक संग्रह है जिसे एक से अधिक हार्डवेयर या वर्चुअल मशीन में स्थापित किया जा सकता है।

राइट-स्केलेबल का मतलब है कि Postgres-XC को जितने चाहें उतने डेटाबेस सर्वर के साथ कॉन्फ़िगर किया जा सकता है और एक एकल डेटाबेस सर्वर की तुलना में कई और राइट्स (SQL स्टेटमेंट अपडेट करना) संभाल सकता है।

आपके पास एक से अधिक डेटाबेस सर्वर हो सकते हैं जिनसे क्लाइंट कनेक्ट होते हैं, डेटाबेस का एकल, सुसंगत क्लस्टर-व्यापी दृश्य प्रदान करते हैं।

किसी भी डेटाबेस सर्वर से कोई भी डेटाबेस अपडेट विभिन्न मास्टर्स पर चल रहे किसी भी अन्य लेनदेन के लिए तुरंत दिखाई देता है।

पारदर्शी का मतलब है कि आपको इस बारे में चिंता करने की ज़रूरत नहीं है कि आपका डेटा आंतरिक रूप से एक से अधिक डेटाबेस सर्वर में कैसे संग्रहीत किया जाता है।

आप कई सर्वरों पर चलने के लिए Postgres-XC को कॉन्फ़िगर कर सकते हैं। आपका डेटा एक वितरित तरीके से संग्रहीत किया जाता है, विभाजित या दोहराया जाता है, जैसा कि आपने प्रत्येक तालिका के लिए चुना है। जब आप क्वेरी जारी करते हैं, तो Postgres-XC निर्धारित करता है कि लक्ष्य डेटा कहाँ संग्रहीत किया जाता है और लक्ष्य डेटा वाले सर्वर को संबंधित क्वेरी जारी करता है।

साइटस

साइटस पोस्टग्रेएसक्यूएल के लिए एक ड्रॉप-इन प्रतिस्थापन है जिसमें अंतर्निहित उच्च उपलब्धता सुविधाएं जैसे ऑटो-शार्डिंग और प्रतिकृति शामिल हैं। साइटस आपके डेटाबेस को शार्प करता है और कमोडिटी नोड्स के क्लस्टर में प्रत्येक शार्क की कई प्रतियों को दोहराता है। यदि क्लस्टर में कोई नोड अनुपलब्ध हो जाता है, तो साइटस किसी भी लेखन या क्वेरी को अन्य नोड्स में से किसी एक पर पुनर्निर्देशित करता है, जिसमें प्रभावित शार्क की एक प्रति होती है।

कुछ विशेषताओं में शामिल हैं:

  • स्वचालित तार्किक शार्डिंग

  • अंतर्निहित प्रतिकृति

  • आपदा पुनर्प्राप्ति के लिए डेटा-सेंटर जागरूक प्रतिकृति

  • उन्नत लोड संतुलन के साथ मध्य-क्वेरी दोष सहिष्णुता

आप PostgreSQL द्वारा संचालित अपने रीयल-टाइम एप्लिकेशन के अपटाइम को बढ़ा सकते हैं और प्रदर्शन पर हार्डवेयर विफलताओं के प्रभाव को कम कर सकते हैं। आप इसे महंगे और त्रुटि-प्रवण मैन्युअल हस्तक्षेप को कम करने वाले अंतर्निहित उच्च उपलब्धता टूल के साथ प्राप्त कर सकते हैं।

PostgresXL

PostgresXL एक साझा-कुछ नहीं, बहु-मास्टर क्लस्टरिंग समाधान है जो नोड्स के एक सेट पर एक तालिका को पारदर्शी रूप से वितरित कर सकता है और उन नोड्स के समानांतर क्वेरी निष्पादित कर सकता है। इसमें एक अतिरिक्त घटक है जिसे ग्लोबल ट्रांजैक्शन मैनेजर (जीटीएम) कहा जाता है, जो क्लस्टर का वैश्विक रूप से सुसंगत दृश्य प्रदान करता है।

PostgresXL एक क्षैतिज रूप से स्केलेबल ओपन-सोर्स SQL ​​डेटाबेस क्लस्टर है, जो अलग-अलग डेटाबेस वर्कलोड को संभालने के लिए पर्याप्त लचीला है:

  • OLTP लेखन-गहन कार्यभार

  • व्यावसायिक इंटेलिजेंस के लिए एमपीपी समानांतरवाद की आवश्यकता है

  • ऑपरेशनल डेटास्टोर

  • की-वैल्यू स्टोर

  • GIS भू-स्थानिक

  • मिश्रित-कार्यभार परिवेश

  • मल्टी-टेनेंट प्रदाता-होस्टेड परिवेश

घटक:

  • ग्लोबल ट्रांजैक्शन मॉनिटर (GTM):ग्लोबल ट्रांजैक्शन मॉनिटर क्लस्टर-वाइड ट्रांजैक्शन कंसिस्टेंसी सुनिश्चित करता है।

  • समन्वयक:समन्वयक उपयोगकर्ता सत्रों का प्रबंधन करता है और GTM और डेटा नोड्स के साथ सहभागिता करता है।

  • डेटा नोड:डेटा नोड वह जगह है जहां वास्तविक डेटा संग्रहीत किया जाता है।

रैपिंग अप

पोस्टग्रेएसक्यूएल के लिए आपके उच्च उपलब्धता वातावरण को लागू करने के लिए कई और उत्पाद उपलब्ध हैं, लेकिन आपको इससे सावधान रहना होगा:

  • नए उत्पाद, पर्याप्त रूप से परीक्षण नहीं किए गए हैं

  • बंद किए गए प्रोजेक्ट

  • सीमाएं

  • लाइसेंसिंग लागत

  • बहुत जटिल कार्यान्वयन

  • असुरक्षित समाधान

आप किस समाधान का उपयोग करेंगे, इसका चयन करते समय, अपने बुनियादी ढांचे को भी ध्यान में रखें। यदि आपके पास केवल एक एप्लिकेशन सर्वर है, चाहे आपने डेटाबेस की उच्च उपलब्धता को कितना भी कॉन्फ़िगर किया हो, यदि एप्लिकेशन सर्वर विफल हो जाता है, तो आप अप्राप्य हैं। आपको बुनियादी ढांचे में विफलता के एकल बिंदुओं का अच्छी तरह से विश्लेषण करना चाहिए और उन्हें हल करने का प्रयास करना चाहिए।

इन बातों को ध्यान में रखते हुए, आप एक उच्च उपलब्धता क्लस्टर समाधान पा सकते हैं जो आपकी आवश्यकताओं और आवश्यकताओं के अनुकूल हो, बिना सिरदर्द के। यदि आप अपने PG डेटाबेस के लिए अतिरिक्त HA संसाधनों की तलाश कर रहे हैं, तो उच्च उपलब्धता के लिए PostgreSQL को परिनियोजित करने पर इस पोस्ट को देखें।

डेटाबेस प्रबंधन समाधानों और सर्वोत्तम प्रथाओं पर अपडेट रहने के लिए, ट्विटर और लिंक्डइन पर हमें फॉलो करें और हमारे न्यूज़लेटर की सदस्यता लें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. QPSQL ड्राइवर ने Qt लोड नहीं किया

  2. पोस्टग्रेज 9.0+ . में PL/pgSQL के साथ टेबल पर लूप

  3. PostgreSQL:PostgreSQL में एक साथ सभी टेबलों पर OWNER को संशोधित करें

  4. INSERT INTO ... रिटर्निंग - अस्पष्ट कॉलम संदर्भ

  5. Postgresql रिकर्सिव सेल्फ जॉइन