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

मास्टर-स्लेव और मास्टर-मास्टर आर्किटेक्चर के साथ पोस्टग्रेएसक्यूएल उच्च उपलब्धता

नीचे हमारे श्वेतपत्र "पोस्टग्रेएसक्यूएल मैनेजमेंट एंड ऑटोमेशन विद क्लस्टरकंट्रोल" का एक अंश है जिसे मुफ्त में डाउनलोड किया जा सकता है।

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


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

PostgreSQL मास्टर-स्लेव आर्किटेक्चर

ये आर्किटेक्चर हमें एक या अधिक स्टैंडबाय सर्वरों के साथ एक मास्टर डेटाबेस बनाए रखने में सक्षम बनाते हैं जो प्राथमिक सर्वर के विफल होने पर संचालन को संभालने के लिए तैयार हैं। ये स्टैंडबाय डेटाबेस मास्टर के साथ सिंक्रनाइज़ (या लगभग सिंक्रनाइज़) रहेंगे।

मास्टर और दास के बीच प्रतिकृति SQL कथन (तार्किक स्टैंडबाय) या आंतरिक डेटा संरचना संशोधनों (भौतिक स्टैंडबाय) के माध्यम से की जा सकती है। PostgreSQL स्टैंडबाय डेटाबेस को सिंक्रोनाइज़ करने के लिए राइट-फ़ॉरवर्ड लॉग (WAL) रिकॉर्ड की एक स्ट्रीम का उपयोग करता है। यदि मुख्य सर्वर विफल हो जाता है, तो स्टैंडबाय में मुख्य सर्वर का लगभग सभी डेटा होता है, और इसे जल्दी से नया मास्टर डेटाबेस सर्वर बनाया जा सकता है। यह सिंक्रोनस या एसिंक्रोनस हो सकता है और केवल संपूर्ण डेटाबेस सर्वर के लिए किया जा सकता है।

स्ट्रीमिंग प्रतिकृति सेट करना एक ऐसा कार्य है जिसके लिए कुछ चरणों का पूरी तरह से पालन करने की आवश्यकता होती है। उन चरणों और इस विषय पर कुछ और पृष्ठभूमि के लिए, कृपया देखें:PostgreSQL DBA बनें - उच्च उपलब्धता के लिए स्ट्रीमिंग प्रतिकृति कैसे सेटअप करें।

संस्करण 10 से, PostgreSQL में तार्किक प्रतिकृति सेटअप करने का विकल्प शामिल है।

तार्किक प्रतिकृति एक डेटाबेस सर्वर को डेटा संशोधनों की एक धारा दूसरे सर्वर पर भेजने की अनुमति देती है। PostgreSQL तार्किक प्रतिकृति WAL से तार्किक डेटा संशोधनों की एक धारा का निर्माण करती है। तार्किक प्रतिकृति अलग-अलग तालिकाओं से डेटा परिवर्तनों को दोहराने की अनुमति देती है। इसके लिए किसी विशेष सर्वर को मास्टर या प्रतिकृति के रूप में नामित करने की आवश्यकता नहीं होती है, लेकिन डेटा को कई दिशाओं में प्रवाहित करने की अनुमति देता है।

आप तार्किक प्रतिकृति के बारे में अधिक जानकारी प्राप्त कर सकते हैं:ब्लॉग:PostgreSQL में तार्किक प्रतिकृति का अवलोकन।

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

एक विफलता होने के बाद, आपको नए मास्टर के साथ काम करने के लिए अपने आवेदन को तदनुसार संशोधित करने की आवश्यकता है। आपके पास केवल एक सर्वर काम कर रहा होगा, इसलिए मास्टर-स्लेव आर्किटेक्चर का पुन:निर्माण करने की आवश्यकता है, इसलिए हम उसी सामान्य स्थिति में वापस आ जाते हैं जो हमारे पास समस्या से पहले थी।

आज श्वेतपत्र डाउनलोड करें क्लस्टरकंट्रोल के साथ पोस्टग्रेएसक्यूएल प्रबंधन और स्वचालन इस बारे में जानें कि पोस्टग्रेएसक्यूएल को तैनात करने, मॉनिटर करने, प्रबंधित करने और स्केल करने के लिए आपको क्या जानना चाहिए। श्वेतपत्र डाउनलोड करें

PostgreSQL मास्टर-मास्टर आर्किटेक्चर

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

इस आर्किटेक्चर को लागू करने के लिए, आपको बाहरी उपकरणों का उपयोग करने की आवश्यकता होगी, क्योंकि यह सुविधा (अभी तक) मूल रूप से PostgreSQL द्वारा समर्थित नहीं है।

मास्टर-मास्टर को लागू करने के लिए समाधान चुनते समय आपको बहुत सावधान रहना चाहिए, क्योंकि कई अलग-अलग उत्पाद हैं। उनमें से बहुत से अभी भी "हरे" हैं, कुछ गंभीर उपयोगकर्ताओं या सफलता के मामलों के साथ। दूसरी ओर, कुछ अन्य परियोजनाओं को छोड़ दिया गया है, क्योंकि कोई सक्रिय अनुरक्षक नहीं हैं।

उपलब्ध टूल के बारे में अधिक जानकारी के लिए कृपया देखें:ब्लॉग:पोस्टग्रेएसक्यूएल के लिए शीर्ष पीजी क्लस्टरिंग एचए समाधान।

लोड संतुलन और कनेक्शन पूलिंग

कई लोड बैलेंसर टूल हैं जिनका उपयोग आपके एप्लिकेशन से ट्रैफ़िक को प्रबंधित करने के लिए किया जा सकता है ताकि आपके डेटाबेस आर्किटेक्चर का अधिकतम लाभ उठाया जा सके। इसी तरह, कुछ अन्य भी हैं जो इन कनेक्शनों को पूल करके और विभिन्न अनुरोधों के बीच उनका पुन:उपयोग करके, एप्लिकेशन को डेटाबेस से कनेक्ट करने के तरीके को प्रबंधित करने में आपकी सहायता कर सकते हैं।

कुछ उत्पाद ऐसे हैं जिनका उपयोग दोनों उद्देश्यों के लिए किया जाता है, जैसे कि प्रसिद्ध pgpool, और कुछ अन्य जो इन सुविधाओं में से केवल एक पर ध्यान केंद्रित करेंगे, जैसे pgbouncer (कनेक्शन पूलिंग) और HAProxy (लोड संतुलन के लिए उपयोग किया जाता है)।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psycopg का उपयोग करके डालने के लिए समस्या

  2. इंटेल एसएसडी, अब बंद हो गया है..गलती, शर्मनाक सूची

  3. sqlalchemy के साथ प्रति-अनुरोध के आधार पर डेटाबेस इंजन को गतिशील रूप से कैसे बांधें

  4. ENUM डेटा प्रकार को पोस्टग्रेज करता है या CONSTRINT की जांच करता है?

  5. PostgreSQL 13 . में यूनिकोड सामान्यीकरण