मैं 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
इन सवालों को हल करने के लिए कोई भी पूरी तरह से स्वचालित समाधान नहीं है। क्या मैं सही हू?
धन्यवाद!