![VPS सर्वर पर केवल-भेजने वाली मेल सूचनाओं के रूप में LAMP + पोस्टफिक्स के साथ वर्डप्रेस कैसे सेटअप करें](/f/981217f660be4935eede48faa989e34e.png?width=100&height=100)
पोस्टग्रेएसक्यूएल डेटाबेस उच्च-उपलब्धता, स्केलेबल, दोष-सहिष्णु अनुप्रयोगों के निर्माण के लिए कई प्रतिकृति समाधानों का समर्थन करता है, जिनमें से एक है आगे लिखें लॉग (वाल) शिपिंग। यह समाधान फ़ाइल-आधारित लॉग शिपिंग या स्ट्रीमिंग प्रतिकृति, या जहां संभव हो, दोनों दृष्टिकोणों के संयोजन का उपयोग करके एक स्टैंडबाय सर्वर को लागू करने की अनुमति देता है।
स्ट्रीमिंग प्रतिकृति के साथ, एक स्टैंडबाय (प्रतिकृति दास) डेटाबेस सर्वर को मास्टर/प्राथमिक सर्वर से कनेक्ट करने के लिए कॉन्फ़िगर किया गया है, जो स्ट्रीम करता है वाल स्टैंडबाय के लिए रिकॉर्ड के रूप में वे उत्पन्न होते हैं, प्रतीक्षा किए बिना वाल फाइल भरनी है।
डिफ़ॉल्ट रूप से, स्ट्रीमिंग प्रतिकृति एसिंक्रोनस होती है जहां प्राथमिक सर्वर पर लेनदेन किए जाने के बाद डेटा स्टैंडबाय सर्वर (एस) को लिखा जाता है। इसका मतलब है कि मास्टर सर्वर में लेनदेन करने और स्टैंडबाय सर्वर में दिखाई देने वाले परिवर्तनों के बीच एक छोटा सा विलंब है। इस दृष्टिकोण का एक नकारात्मक पहलू यह है कि यदि मास्टर सर्वर क्रैश हो जाता है, तो किसी भी अप्रतिबंधित लेनदेन को दोहराया नहीं जा सकता है और इससे डेटा हानि हो सकती है।
यह मार्गदर्शिका दिखाती है कि कैसे सेट अप करें पोस्टग्रेस्क्ल 12 मास्टर-स्टैंडबाय स्ट्रीमिंग प्रतिकृति चालू सेंटोस 8. हम इस्तेमाल करेंगे "प्रतिकृति स्लॉट"मास्टर सर्वर को पुराने पुनर्चक्रण से बचाने के समाधान के रूप में स्टैंडबाय के लिए" वाल स्टैंडबाय से पहले के खंडों ने उन्हें प्राप्त किया है।
ध्यान दें कि अन्य विधियों की तुलना में, प्रतिकृति स्लॉट केवल आवश्यक खंडों की संख्या को बनाए रखते हैं।
यह मार्गदर्शिका मानती है कि आप अपने मास्टर और स्टैंडबाय डेटाबेस सर्वर से रूट के रूप में जुड़े हुए हैं एसएसएच (उपयोग सुडो आदेश जहां आवश्यक हो यदि आप प्रशासनिक अधिकारों के साथ एक सामान्य उपयोगकर्ता के रूप में जुड़े हुए हैं):
Postgresql मास्टर डेटाबेस सर्वर: 10.20.20.9। Postgresql स्टैंडबाय डेटाबेस सर्वर: 10.20.20.8.
दोनों डेटाबेस सर्वर के पास होना चाहिए पोस्टग्रेस्क्ल 12 स्थापित, अन्यथा, देखें: CentOS 8 में PostgreSQL और pgAdmin कैसे स्थापित करें?.
ध्यान दें: पोस्टग्रेएसक्यूएल 12 प्रतिकृति कार्यान्वयन और विन्यास में बड़े बदलाव के साथ आता है जैसे कि. का प्रतिस्थापन वसूली.conf और का रूपांतरण वसूली.conf सामान्य PostgreSQL कॉन्फ़िगरेशन पैरामीटर के लिए पैरामीटर, क्लस्टर प्रतिकृति को कॉन्फ़िगर करना बहुत आसान बनाता है।
1. मास्टर सर्वर पर, पोस्टग्रेज सिस्टम अकाउंट पर स्विच करें और आईपी एड्रेस (एस) को कॉन्फ़िगर करें जिस पर मास्टर सर्वर क्लाइंट से कनेक्शन के लिए सुनेगा।
इस मामले में, हम उपयोग करेंगे *
मतलब सब।
# सु - पोस्टग्रेज। $ psql -c "वैकल्पिक प्रणाली '*' के लिए सुनो_पता सेट करें;"
NS परिवर्तन प्रणाली सेट SQL कमांड सीधे SQL क्वेरी के साथ सर्वर के कॉन्फ़िगरेशन पैरामीटर को बदलने के लिए एक शक्तिशाली विशेषता है। विन्यास में सहेजे गए हैं postgresql.conf.auto डेटा फ़ोल्डर के मूल में स्थित फ़ाइल (उदा /var/lib/pgsql/12/data/) और में संग्रहीत लोगों के अलावा पढ़ें postgresql.conf. लेकिन पूर्व में विन्यास बाद में और अन्य संबंधित फाइलों की तुलना में पूर्वता लेते हैं।
2. फिर एक प्रतिकृति भूमिका बनाएं जिसका उपयोग स्टैंडबाय सर्वर से मास्टर सर्वर से कनेक्शन के लिए किया जाएगा उपयोगकर्ता बनाइये कार्यक्रम। निम्न आदेश में, -पी
ध्वज नई भूमिका के लिए पासवर्ड के लिए संकेत देता है और -इ
उन आदेशों को गूँजता है जो createuser उत्पन्न करते हैं और डेटाबेस सर्वर को भेजते हैं।
# सु - पोस्टग्रेज। $ createuser --replication -P -e रेप्लिकेटर। $ बाहर निकलें।
3. फिर के अंत में निम्नलिखित प्रविष्टि दर्ज करें /var/lib/pgsql/12/data/pg_hba.conf स्क्रीनशॉट में दिखाए गए अनुसार प्रतिकृति पर सेट डेटाबेस फ़ील्ड के साथ क्लाइंट प्रमाणीकरण कॉन्फ़िगरेशन फ़ाइल।
मेजबान प्रतिकृति प्रतिकृति 10.20.20.8/24 md5.
4. अब पुनः आरंभ करें पोस्टग्रेज12 परिवर्तन लागू करने के लिए निम्नलिखित systemctl कमांड का उपयोग कर service.
# systemctl postgresql-12.service को पुनरारंभ करें।
5. अगला, यदि आपके पास फायरवॉल सेवा चल रही है, आपको स्टैंडबाय सर्वर से मास्टर को अनुरोधों की अनुमति देने के लिए फ़ायरवॉल कॉन्फ़िगरेशन में Postgresql सेवा जोड़ने की आवश्यकता है।
# फ़ायरवॉल-cmd --add-service=postgresql --permanent. # फ़ायरवॉल-cmd --reload.
6. इसके बाद, आपको स्टैंडबाय सर्वर से मास्टर सर्वर का आधार बैकअप बनाने की आवश्यकता है; यह स्टैंडबाय सर्वर को बूटस्ट्रैप करने में मदद करता है। आपको स्टैंडबाय सर्वर पर पोस्टग्रेस्क्ल 12 सेवा को रोकने की जरूरत है, पोस्टग्रेज यूजर अकाउंट पर स्विच करें, डेटा डायरेक्टरी का बैकअप लें (/var/lib/pgsql/12/data/), फिर बेस बैकअप लेने से पहले, दिखाए गए अनुसार इसके तहत सब कुछ हटा दें।
# systemctl postgresql-12.service बंद करो। # सु - पोस्टग्रेज। $ सीपी-आर /var/lib/pgsql/12/डेटा /var/lib/pgsql/12/data_orig. $ आरएम-आरएफ /var/lib/pgsql/12/डेटा/*
7. फिर का उपयोग करें पीजी_बेसबैकअप सही स्वामित्व के साथ आधार बैकअप लेने के लिए उपकरण (डेटाबेस सिस्टम उपयोगकर्ता यानी postgres, के अंदर postgres उपयोगकर्ता खाता) और सही अनुमतियों के साथ।
निम्न आदेश में, विकल्प:
-एच
- होस्ट को निर्दिष्ट करता है जो मास्टर सर्वर है।-डी
- डेटा निर्देशिका निर्दिष्ट करता है।यू
- कनेक्शन उपयोगकर्ता को निर्दिष्ट करता है।-पी
- प्रगति रिपोर्टिंग को सक्षम बनाता है।-वी
- वर्बोज़ मोड को सक्षम करता है।-आर
- पुनर्प्राप्ति कॉन्फ़िगरेशन के निर्माण को सक्षम करता है: बनाता है a स्टैंडबाय.सिग्नल फ़ाइल और कनेक्शन सेटिंग्स संलग्न करें postgresql.auto.conf डेटा निर्देशिका के तहत।-एक्स
- बैकअप में आवश्यक राइट-फ़ॉरवर्ड लॉग फ़ाइलें (WAL फ़ाइलें) शामिल करने के लिए उपयोग किया जाता है। स्ट्रीम के मान का अर्थ है बैकअप बनाते समय WAL को स्ट्रीम करना।-सी
- बैकअप शुरू करने से पहले -S विकल्प द्वारा नामित एक प्रतिकृति स्लॉट के निर्माण को सक्षम करता है।-एस
- प्रतिकृति स्लॉट नाम निर्दिष्ट करता है।$ pg_basebackup -h 10.20.20.9 -D /var/lib/pgsql/12/data -U रेप्लिकेटर -P -v -R -X स्ट्रीम -C -S pgstandby1. $ बाहर निकलें।
8. जब बैकअप प्रक्रिया पूरी हो जाती है, तो स्टैंडबाय सर्वर पर नई डेटा निर्देशिका स्क्रीनशॉट की तरह दिखनी चाहिए। ए स्टैंडबाय.सिग्नल बनाया गया है और कनेक्शन सेटिंग्स को इसमें जोड़ा गया है postgresql.auto.conf. आप इसका उपयोग करके इसकी सामग्री को सूचीबद्ध कर सकते हैं एलएस कमांड.
# एलएस -एल /var/lib/pgsql/12/डेटा/
एक प्रतिकृति दास "में चलेगा"गर्म स्टैंडबाय"मोड अगर गर्म स्टैंडबाय पैरामीटर को चालू (डिफ़ॉल्ट मान) पर सेट किया गया है postgresql.conf और वहाँ एक है स्टैंडबाय.सिग्नल डेटा निर्देशिका में मौजूद फ़ाइल।
9. अब वापस मास्टर सर्वर पर, आपको प्रतिकृति स्लॉट देखने में सक्षम होना चाहिए जिसे कहा जाता है पीजीस्टैंडबाय1 जब आप खोलते हैं pg_replication_slots निम्नानुसार देखें।
# सु - पोस्टग्रेज। $ psql -c "चुनें * pg_replication_slots से;" $ बाहर निकलें।
10. में संलग्न कनेक्शन सेटिंग देखने के लिए postgresql.auto.conf फ़ाइल, उपयोग करें कैट कमांड.
# कैट /var/lib/pgsql/12/data/postgresql.auto.conf.
11. अब PostgreSQL सेवा को निम्नानुसार शुरू करके स्टैंडबाय सर्वर पर सामान्य डेटाबेस संचालन शुरू करें।
# systemctl start postgresql-12.
12. एक बार मास्टर और स्टैंडबाय के बीच सफलतापूर्वक कनेक्शन स्थापित हो जाने के बाद, आप देखेंगे a वाल स्ट्रीमिंग की स्थिति के साथ स्टैंडबाय सर्वर में रिसीवर प्रक्रिया, आप इसका उपयोग करके इसकी जांच कर सकते हैं pg_stat_wal_receiver दृश्य।
$ psql -c "\x" -c "चुनें * pg_stat_wal_receiver से;"
और एक संगत वाल स्ट्रीमिंग की स्थिति के साथ मास्टर/प्राथमिक सर्वर में प्रेषक प्रक्रिया और a सिंक_स्टेट async के, आप इस pg_stat_replication pg_stat_replication दृश्य को देख सकते हैं।
$ psql -c "\x" -c "चुनें * pg_stat_replication से;"
ऊपर के स्क्रीनशॉट से, स्ट्रीमिंग प्रतिकृति अतुल्यकालिक है। अगले भाग में, हम प्रदर्शित करेंगे कि वैकल्पिक रूप से सिंक्रोनस प्रतिकृति को कैसे सक्षम किया जाए।
13. अब परीक्षण करें कि क्या मास्टर सर्वर में एक परीक्षण डेटाबेस बनाकर प्रतिकृति ठीक काम कर रही है और जांचें कि क्या यह स्टैंडबाय सर्वर में मौजूद है।
[मास्टर] पोस्टग्रेज = # डेटाबेस टेकमिंट बनाएं;
[स्टैंडबाय] पोस्टग्रेज=# \l
14. सिंक्रोनस प्रतिकृति प्राथमिक डेटाबेस और स्टैंडबाय/प्रतिकृति को एक साथ लेनदेन करने (या डेटा लिखने) की क्षमता प्रदान करती है। यह केवल पुष्टि करता है कि लेनदेन सफल होता है जब लेनदेन द्वारा किए गए सभी परिवर्तन एक या अधिक सिंक्रोनस स्टैंडबाय सर्वर पर स्थानांतरित कर दिए जाते हैं।
तुल्यकालिक प्रतिकृति को सक्षम करने के लिए, तुल्यकालिक_प्रतिबद्ध पर भी सेट होना चाहिए (जो कि डिफ़ॉल्ट मान है, इस प्रकार किसी भी बदलाव की कोई आवश्यकता नहीं है) और आपको सेट करने की भी आवश्यकता है तुल्यकालिक_स्टैंडबाय_नाम एक गैर-खाली मान के लिए पैरामीटर। इस गाइड के लिए, हम इसे सभी के लिए सेट करेंगे।
$ psql -c "ALTER SYSTEM SET तुल्यकालिक_स्टैंडबाय_नाम से '*';"
15. फिर नए परिवर्तनों को लागू करने के लिए PostgreSQL 12 सेवा को पुनः लोड करें।
# systemctl पुनः लोड postgresql-12.service.
16. अब जब आप क्वेरी करते हैं वाल प्राथमिक सर्वर पर एक बार फिर प्रेषक प्रक्रिया, इसे स्ट्रीमिंग की स्थिति और a. दिखाना चाहिए सिंक_स्टेट का साथ - साथ करना.
$ psql -c "\x" -c "चुनें * pg_stat_replication से;"
हम इस गाइड के अंत में आ गए हैं। हमने दिखाया है कि कैसे सेट अप करें पोस्टग्रेएसक्यूएल 12 मास्टर-स्टैंडबाय डेटाबेस स्ट्रीमिंग प्रतिकृति सेंटोस 8. हमने यह भी कवर किया कि PostgreSQL डेटाबेस क्लस्टर में सिंक्रोनस प्रतिकृति को कैसे सक्षम किया जाए।
प्रतिकृति के कई उपयोग हैं और आप हमेशा ऐसा समाधान चुन सकते हैं जो आपके आईटी वातावरण और/या एप्लिकेशन-विशिष्ट आवश्यकताओं को पूरा करता हो। अधिक विवरण के लिए, यहां जाएं लॉग-शिपिंग स्टैंडबाय सर्वर PostgreSQL 12 प्रलेखन में।