Pgpool वास्तुकला के साथ पोस्टग्रेट्स


9

नीचे एक उदाहरण pgpool वास्तुकला है:

यहां छवि विवरण दर्ज करें

इसका मतलब यह है कि आपको केवल एक ही सर्वर पर pgpool की आवश्यकता है; क्या ये सच है? जब मैं कॉन्फ़िगरेशन को देखता हूं तो मैं यह भी देखता हूं कि आप बैकएंड को कॉन्फ़िगर करते हैं pgpool.conf; तो यह आगे इसका तात्पर्य है। लेकिन, यह स्पष्ट नहीं करता है कि मैं बैकएंड सर्वर पर भी pgpool क्यों देखता हूं।

जब मैं देख रहा हूँ दस्तावेज भी देख:

यदि आप PostgreSQL 8.0 या बाद के संस्करण का उपयोग कर रहे हैं, तो pgpool-II द्वारा एक्सेस किए जाने वाले सभी PostgreSQL पर pgpool_regclass फ़ंक्शन स्थापित करने की दृढ़ता से अनुशंसा की जाती है, क्योंकि यह आंतरिक रूप से pgpool-II द्वारा उपयोग किया जाता है।

तो मुझे यकीन नहीं है कि क्या सोचना है; यदि सभी बैकेंड या सिर्फ एक समर्पित सर्वर पर pgpool का होना सबसे अच्छा अभ्यास है?


यदि आप उच्च उपलब्धता के लिए जा रहे हैं, तो आप संभवत: कम से कम 2 पोस्टग्रैक्स्ल सर्वर (सभी अलग-अलग बॉक्स पर) के सामने दो pgpool सर्वर चाहते हैं
नील मैकगिन

जवाबों:


10

आम तौर पर आप बैकेंड सर्वर पर Pgpool स्थापित नहीं करेंगे। आप अपने चित्र में जो देख रहे हैं वह सबसे सामान्य विन्यास है। Pgpool एक स्टैंडअलोन सर्वर है जो अनिवार्य रूप से डेटाबेस के सामने बैठता है। दो Postgres सर्वर अक्सर स्ट्रीमिंग प्रतिकृति के साथ कॉन्फ़िगर किए जाते हैं; एक मालिक और दूसरा गुलाम होने के साथ।

यह Pgpool को दो (या अधिक) डेटाबेस के बीच सभी पढ़े गए प्रश्नों को संतुलित करने की अनुमति देता है। कोई भी प्रश्न जिसमें कोई भी लिखना शामिल है, मास्टर सर्वर पर भेजा जाएगा जो बदले में दास को दोहराता है।

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

या तो कॉन्फ़िगरेशन में, आपके एप्लिकेशन सर्वर को लगता है कि यह सिर्फ एक पोस्टग्रैज डेटाबेस से जुड़ रहा है।

के बारे में pgpool_regclass, जो वास्तव में एक अलग प्रश्न होना चाहिए, यह Pgpool से है :

यदि आप PostgreSQL 8.0 या बाद के संस्करण का उपयोग कर रहे हैं, तो pgpool-II द्वारा एक्सेस किए जाने वाले सभी PostgreSQL पर pgpool_regclass फ़ंक्शन स्थापित करने की दृढ़ता से अनुशंसा की जाती है, क्योंकि यह आंतरिक रूप से pgpool-II द्वारा उपयोग किया जाता है। इसके बिना, अलग-अलग स्कीमा में डुप्लिकेट टेबल नामों को संभालने से परेशानी हो सकती है (अस्थायी टेबल समस्या नहीं हैं)।

यदि आप PostgreSQL 9.4.0 या बाद के संस्करण और pgpool-II 3.3.4 या बाद के संस्करण का उपयोग कर रहे हैं, तो 3.4.0 या बाद में, आपको pgpool_regclass को स्थापित करने की आवश्यकता नहीं है क्योंकि PostgreSQL 9.4 ने फ़ंक्शन "to_regclass" जैसे pgpool_regclass में बनाया है।

यदि आपको इसकी आवश्यकता है, तो यह आपके पोस्टग्रेज मास्टर सर्वर पर एक फ़ंक्शन Pgpool उपयोगों को जोड़ने के लिए सिर्फ कुछ SQL कोड है।

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

यदि आप स्रोत से संकलित करते हैं, तो आपको .../pgpool-II-3.X.X/src/sql/pgpool-regclassफ़ोल्डर में जाना होगा और ए करना होगा ./configure; make

पोस्टग्रेज एक्सटेंशन डायरेक्टरी में pgpool-regclass.so फाइल को कॉपी करें। मेरे उबंटू 14.04 सर्वर पर (पोस्टग्रेज 9.3 पैकेज इंस्टॉल का उपयोग करके), यह यहां स्थित है /usr/lib/postgresql/9.3/lib:। सभी Postgres सर्वर के लिए ऐसा करना याद रखें ।

एक बार जो पूरा हो गया, तो आप pgpool-regclass.sqlगुरु पर चल सकते हैं । यह केवल pgpool_regclassआपके द्वारा कॉपी की गई लाइब्रेरी के फ़ंक्शन को मैप करता है।


1

सब कुछ के साथ के रूप में, वहाँ कई तरीके हैं कि आप अपनी उच्च उपलब्धता तैनाती कैसे पूरा कर सकते हैं। यहाँ मैं अपने अनुभव (मेरे अपने हा कार्यान्वयन) से कुछ सुझाव दूंगा:

  1. हमेशा एक के बजाय कई pgpool2 उदाहरण होना बेहतर होता है। कारण स्पष्ट है: एकल pgpool2 विफलता का एकल बिंदु है। चूँकि pgpool ने प्रहरी सुविधा शुरू की है, इसलिए इसे पूरा करना आसान है।
  2. आम तौर पर अलग-अलग मशीनों पर pgpool2 इंस्टेंस होना थोड़ा बेहतर होता है, क्योंकि पोस्टग्रेएसक्यूएल बैकएंड और pgpool2 के बीच एक ही मशीन साझा करें। यदि आप उन्हें PostgreSQL के समान सर्वर पर चलाते हैं तो भी कोई महत्वपूर्ण कमी नहीं है। (मेरे हा कार्यान्वयन में हर मशीन एक PostgreSQL इंस्टेंस और एक pgpool2 इंस्टेंस चलाती है।)

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

मुझे उम्मीद है कि इससे मदद मिली।

अद्यतन: धन्यवाद @Moshe Katz - लिंक बदल गया है। अब यहाँ अपडेट किया गया है, मूल पोस्ट में भी।


2
आपके द्वारा बताई गई वेबसाइट itenlight.com/blog/2016/05/18/… नीचे दिख रही है। क्या आप देख सकते हैं?
user6807024

ऐसा लगता है कि लेख अब fatdragon.me/blog/2016/05/postgresql-ha-pgpool-ii-part-1
मोशे काटज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.