PostgreSQL पर प्रतिकृति और विफलता की स्ट्रीमिंग


14

मैं PostgreSQL प्रतिकृति पर अवधारणा का प्रमाण कर रहा हूं। मंच पर चर्चा के बाद हमने स्ट्रीमिंग प्रतिकृति के साथ जाने का फैसला किया क्योंकि प्रदर्शन अन्य समाधानों की तुलना में अच्छा है। PostgreSQL स्ट्रीमिंग प्रतिकृति के लिए स्वचालित विफलता प्रदान नहीं कर रहा है। हम एक ट्रिगर फ़ाइल का उपयोग करके दास को मास्टर में बदल सकते हैं लेकिन यह प्रबंधनीय नहीं है। इसलिए मैं स्वचालित विफलता और उच्च उपलब्धता के साथ समाधान चाहूंगा।

विभिन्न समाधान उपलब्ध हैं:

  1. Repmgr
  2. लिनक्स हार्टबीट
  3. Pgpool-II (केवल स्वचालित विफलता के लिए)
  4. आपके द्वारा उपयोग किए जाने के मामले में कोई अन्य उपकरण।

मेरा प्रश्न यह है कि किस समाधान का उपयोग किया जाना चाहिए?

जवाबों:


8

हमारी दुकान में हमने पगमार्क के बजाय रिपीग्र और पगबॉन्सर का चयन किया। repmgr में प्रतिकृति डेटाबेस सर्वर के क्लस्टर को सेटअप करने और बनाए रखने के लिए कुछ अच्छे टूलिंग हैं। हमारे मामले में 1 मास्टर और 2 दास (एक असफलता और एक लाइव रीड परफॉर्मेंस टेस्ट जो नए मास्टर का फेलओवर बन सकता है)। pgpool में कॉन्फ़िगरेशन में परिवर्तन के साथ समस्याएं हैं, ज्यादातर मामलों में आपको सेवा को पुनरारंभ करना होगा और इसके बाद आपके पास कुछ डाउनटाइम होगा। यह एक समस्या है जब आपको 24x7x365 उपलब्धता की आवश्यकता होती है।

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

repmgr को उन्हीं लोगों द्वारा बनाए रखा जाता है जिन्होंने पहली बार में स्ट्रीमिंग प्रतिकृति बनाई थी, इसलिए वे जानते हैं कि वे किस बारे में बात करते हैं। वर्जन 2.0 रिलीज होने वाली है।

सबसे खराब स्थिति के लिए तैयार करें, कुछ शक्ति और नेटवर्क प्लग खींचकर गंभीर परीक्षण करें! जब कुछ गलत हो जाता है, तो कई अन्य चीजें पहले से ही गलत हो जाती हैं और जब आप इसे बर्दाश्त नहीं कर सकते हैं तो आपको पीठ में काट लेंगे।

प्रतिकृति एक चीज है, कुछ गंभीर समस्याओं के बाद काम करना विफलता है, दूसरी बात है।


1

हम एक ही समय में संयोजन में दो अलग-अलग समाधानों का उपयोग कर रहे हैं ...

तुल्यकालिक प्रतिकृति के लिए Pgpool-II और एसिंक्रोनस (ट्रिगर) प्रतिकृति के लिए Slony2।

प्रदर्शन बेहतरीन है


प्रतिक्रिया के लिए धन्यवाद ... वास्तव में मैं स्ट्रीमिंग प्रतिकृति के साथ Pgpool-II की कोशिश कर रहा हूं। यह स्वचालित विफलता प्रदान कर रहा है। लेकिन अगर मैं प्राथमिक नोड को फिर से शुरू करूंगा, तो क्या pgpool-II फिर से मास्टर या स्टैंडबाय नोड के रूप में शुरू होगा?
सौरभ

जहाँ तक मुझे पता है निश्चित रूप से नहीं। आपको प्राथमिक नोड की मैन्युअल रूप से रिकवरी करनी होगी। हमारा सेटअप थोड़ा अलग है। यह एक मल्टी मास्टर एवर्रोनमेंट है और सभी नोड्स के पास समान अधिकार हैं। यदि एक नोड सिंक से बाहर जाता है तो लोड बैलेंसर्स इस नोड पर पुनर्निर्देशित ग्राहकों को मना कर देते हैं।
user5701
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.