PostgreSQL विफलता और प्रतिकृति


14

मैं PostgreSQL 9.1 का मूल्यांकन कर रहा हूं और इसमें विफलता और प्रतिकृति विवरण से संबंधित कुछ प्रश्न हैं।

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

मैं PostgreSQL और वर्तमान परिदृश्य के साथ जो समस्याएं देख रहा हूं वे निम्नलिखित हैं।

1) मुझे मास्टर सर्वर आउटेज का पता लगाने के लिए अंतर्निहित उपकरण दिखाई नहीं देते हैं। मैंने पढ़ा है कि pgpool इसे संभाल सकता है और ट्रिगर फ़ाइल बना सकता है, मैंने यह भी पढ़ा कि लोग इसके लिए लिनक्स दिल की धड़कन या परिचित उपकरणों का उपयोग करते हैं। ठीक है, मैं विफलता का पता लगा सकता हूं और क्लस्टर में एक नया मास्टर असाइन कर सकता हूं। क्या दूसरे दास समझेंगे कि एक नया मास्टर है और उन्हें अब इसका बैकअप लेना चाहिए?

2) मैं असफलता प्रक्रिया को नहीं समझता। मास्टर और स्लेव होस्ट कॉन्फ़िगरेशन अलग हैं। तो क्या मास्टर फेलबैक क्रैश होने के बाद मेरे पास दो मास्टर्स होंगे? सर्वर सिंक में वापस कैसे आएंगे? मैंने "मैनुअल डेटा फ़ोल्डर को सर्वर पर स्थानांतरित करने और इसे पुनः आरंभ करने" जैसे केवल मैनुअल समाधानों को देखा। तो क्या समाधान या सर्वोत्तम अभ्यास या कम से कम प्रमुख प्रिंसिपल यहाँ है?

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

4) क्या कोई समाधान (वाणिज्यिक भी) है, इसलिए मैं मैन्युअल रूप से डेटा की प्रतिलिपि बनाने से बच सकता हूं, पोस्टग्रेज SQL उदाहरणों और अन्य सामानों को पुन: कॉन्फ़िगर कर सकता हूं जो हाथों से किया जाना चाहिए? इस तरह के क्लस्टर कॉन्फ़िगरेशन जब सिंक में हर कोई, यह स्पष्ट है कि कौन है मास्टर और सब कुछ ऑपरेटर के ध्यान के बिना स्वचालित रूप से स्विच करता है?

इन धागों और लेखों के अनुसार

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

PostgreSQL 9.1 में स्वचालित विफलता

http://denishjpatel.blogspot.com/2010/11/possibility-of-graceful-switchover.html

इन सवालों को हल करने के लिए कोई भी पूरी तरह से स्वचालित समाधान नहीं है। क्या मैं सही हू?

धन्यवाद!


यह संभवतः प्रासंगिक 9.2 डॉक्स की ओर इशारा करने लायक है ।
माइक शेरिल 'कैट रिकॉल'

जवाबों:


4
  1. दास नए स्वामी को समझ नहीं पाएंगे। आपको मैन्युअल रूप से ऐसा करना चाहिए।
  2. हाँ, वे अलग-अलग हैं और आपको पुराने मास्टर के लिए नए बनाने चाहिए। पुराने स्टैंडबाय मास्टर के रूप में काम करना जारी रखेंगे, लेकिन आपको उस नोड पर max_wal_senders सेट करना चाहिए। आपको विफलता के बाद नए मास्टर का pg_hba.conf भी सेट करना चाहिए। फ़ेलओवर के बाद (जब नोड्स भूमिकाओं में परिवर्तन करते हैं-> दास दास-> मास्टर), तो आपको नए स्टैंडबाय फ़ाइलों को नए स्टैंडबाय फ़ोल्डर्स डेटा निर्देशिका में स्थानांतरित करना चाहिए, जिन्हें आप पुनर्प्राप्ति में सेट करते हैं ।conf फ़ाइल। या बस आप rsync का उपयोग कर सकते हैं।

  3. हो सकता है कि आप pgbouncer का उपयोग कर सकते हैं। इस तरह आप सिर्फ नए मास्टर के लिए pgbouncer सर्वर adres बदल देंगे।

  4. EnterpriseDB में कुछ वाणिज्यिक उपकरण हैं। हो सकता है कि आप उनकी जांच कर सकें।

और अंत में हाँ, आप सही हैं। इन सवालों को हल करने के लिए कोई भी पूरी तरह से स्वचालित समाधान नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.