MariaDB
 sql >> डेटाबेस >  >> RDS >> MariaDB

MySQL या PostgreSQL का उपयोग करके Drupal वेबसाइटों के लिए डेटाबेस स्विचओवर और फ़ेलओवर

Drupal एक सामग्री प्रबंधन प्रणाली (CMS) है जिसे छोटे से लेकर बड़े कॉर्पोरेट वेबसाइटों तक सब कुछ बनाने के लिए डिज़ाइन किया गया है। ड्रूपल पर 1,000,000 से अधिक वेबसाइटें चलती हैं और इसका उपयोग आपके द्वारा प्रतिदिन उपयोग की जाने वाली कई वेबसाइटों और अनुप्रयोगों को बनाने के लिए किया जाता है (इसमें यह भी शामिल है)। Drupal में मानक सुविधाओं का एक बड़ा सेट है जैसे आसान सामग्री संलेखन, विश्वसनीय प्रदर्शन और उत्कृष्ट सुरक्षा। जो चीज ड्रुपल को अलग करती है, वह है इसका लचीलापन, क्योंकि प्रतिरूपकता इसके मूल सिद्धांतों में से एक है।

एकीकृत डिजिटल ढाँचा बनाने के लिए Drupal भी एक बढ़िया विकल्प है। आप इसे उपलब्ध हजारों ऐड-ऑन के साथ बढ़ा सकते हैं। ये मॉड्यूल ड्रूपल की कार्यक्षमता का विस्तार करते हैं। थीम आपको अपनी सामग्री की प्रस्तुति को अनुकूलित करने देती है और वितरण (ड्रूपल बंडल) बंडल होते हैं जिन्हें आप स्टार्टर-किट के रूप में उपयोग कर सकते हैं। आप इन सभी कार्यात्मकताओं का उपयोग Drupal की मूल क्षमताओं को बढ़ाने या बाहरी सेवाओं के साथ Drupal को एकीकृत करने के लिए मिक्स एंड मैच करने के लिए कर सकते हैं। यह सामग्री प्रबंधन सॉफ्टवेयर है जो शक्तिशाली और मापनीय है।

Drupal अपनी वेब सामग्री को संग्रहीत करने के लिए डेटाबेस का उपयोग करता है। जब आपकी ड्रूपल-आधारित वेबसाइट या एप्लिकेशन बड़ी मात्रा में ट्रैफ़िक का अनुभव कर रही है, तो इसका आपके डेटाबेस सर्वर पर प्रभाव पड़ सकता है। जब आप इस स्थिति में होते हैं तो आपको अपने डेटाबेस को ऑनलाइन रखने के लिए लोड संतुलन, उच्च उपलब्धता और एक अनावश्यक वास्तुकला की आवश्यकता होगी।

जब मैंने इस ब्लॉग पर शोध करना शुरू किया, तो मैंने महसूस किया कि इस मुद्दे के ऑनलाइन कई उत्तर हैं, लेकिन सुझाए गए समाधान बहुत पुराने थे। यह वर्डप्रेस द्वारा बाजार हिस्सेदारी में वृद्धि का परिणाम हो सकता है जिसके परिणामस्वरूप एक छोटा खुला स्रोत समुदाय हो सकता है। मास्टर/मास्टर (उच्च उपलब्धता) या मास्टर/मास्टर/स्लेव (उच्च उपलब्धता/उच्च प्रदर्शन) का उपयोग करके मुझे उच्च उपलब्धता को लागू करने के कुछ उदाहरण मिले।

Drupal डेटाबेस की एक विस्तृत श्रृंखला के लिए समर्थन प्रदान करता है, लेकिन इसे शुरू में MySQL वेरिएंट का उपयोग करके डिज़ाइन किया गया था। हालांकि MySQL का उपयोग पूरी तरह से समर्थित है, ऐसे बेहतर तरीके हैं जिन्हें आप लागू कर सकते हैं। हालांकि, इन अन्य तरीकों को लागू करने से, यदि ठीक से नहीं किया जाता है, तो आपकी वेबसाइट को बड़ी मात्रा में डाउनटाइम का अनुभव हो सकता है, आपके आवेदन को प्रदर्शन के मुद्दों का सामना करना पड़ सकता है, और इसके परिणामस्वरूप आपके दासों को लिखने में समस्या हो सकती है। रखरखाव करना भी मुश्किल होगा क्योंकि बिना डाउनटाइम के सर्वर अपग्रेड या पैच (हार्डवेयर या सॉफ्टवेयर) को लागू करने के लिए आपको फेलओवर की आवश्यकता होती है। यह विशेष रूप से सच है यदि आपके पास बड़ी मात्रा में डेटा है, जिससे आपके व्यवसाय पर संभावित बड़ा प्रभाव पड़ रहा है।

ये ऐसी स्थितियां हैं जो आप नहीं चाहते हैं, इसलिए इस ब्लॉग में हम चर्चा करेंगे कि आप अपने MySQL या PostgreSQL डेटाबेस के लिए डेटाबेस विफलता को कैसे लागू कर सकते हैं।

आपकी Drupal वेबसाइट को डेटाबेस फ़ेलओवर की आवश्यकता क्यों है?

विकिपीडिया से "विफलता पहले से सक्रिय एप्लिकेशन, सर्वर, सिस्टम, हार्डवेयर घटक, या नेटवर्क की विफलता या असामान्य समाप्ति पर एक अनावश्यक या स्टैंडबाय कंप्यूटर सर्वर, सिस्टम, हार्डवेयर घटक या नेटवर्क पर स्विच कर रहा है। फ़ेलओवर और स्विचओवर अनिवार्य रूप से एक ही ऑपरेशन हैं, सिवाय इसके कि फ़ेलओवर स्वचालित है और आमतौर पर बिना किसी चेतावनी के संचालित होता है, जबकि स्विचओवर में मानवीय हस्तक्षेप की आवश्यकता होती है।"

डेटाबेस संचालन में, स्विचओवर भी मैन्युअल विफलता के लिए इस्तेमाल किया जाने वाला शब्द है, जिसका अर्थ है कि इसके लिए एक व्यक्ति को विफलता को संचालित करने की आवश्यकता होती है। फ़ेलओवर किसी भी व्यवस्थापक के काम आता है क्योंकि यह अवांछित समस्याओं को अलग करता है जैसे कि आकस्मिक रूप से हटाए जाने / तालिकाओं को छोड़ने, लंबे समय तक डाउनटाइम के कारण व्यावसायिक प्रभाव, डेटाबेस भ्रष्टाचार, या सिस्टम-स्तरीय भ्रष्टाचार।

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

Drupal के लिए MySQL फ़ेलओवर

आपके ड्रूपल-आधारित एप्लिकेशन के लिए एक फ़ेलओवर करने के लिए आवश्यक है कि डेटाबेस द्वारा प्रबंधित डेटा अलग-अलग न हो और न ही अलग हो। कई समाधान उपलब्ध हैं, और उनमें से कुछ की चर्चा हम पिछले कई ब्लॉगों में कर चुके हैं। आप शायद हमारा इंट्रोडक्शन टू फ़ेलओवर फॉर मायएसक्यूएल प्रतिकृति - 101 ब्लॉग पढ़ना चाहेंगे।

द मास्टर-स्लेव स्विचओवर

MySQL फ़ेलओवर के लिए सबसे आम तरीका मास्टर-स्लेव स्विच ओवर या मैन्युअल फ़ेलओवर का उपयोग करना है। आप यहां दो तरीके अपना सकते हैं:

  • आप अपने डेटाबेस को एक विशिष्ट एसिंक्रोनस मास्टर-स्लेव प्रतिकृति के साथ कार्यान्वित कर सकते हैं।
  • या जीटीआईडी-आधारित प्रतिकृति का उपयोग करके एसिंक्रोनस मास्टर-स्लेव प्रतिकृति के साथ कार्यान्वित कर सकते हैं।

दूसरे मास्टर पर स्विच करना तेज़ और आसान हो सकता है। यह निम्नलिखित MySQL सिंटैक्स के साथ किया जा सकता है:

mysql> SET GLOBAL read_only = 1; /* enable read-only */

mysql> CHANGE MASTER TO MASTER_HOST = '<hostname-or-ip>', MASTER_USER = '<user>', MASTER_PASSWORD = '<password>', MASTER_LOG_FILE = '<master-log-file>', MASTER_LOG_POS=<master_log_position>; /* master information to connect */

mysql> START SLAVE; /* start replication */

mysql> SHOW SLAVE STATUS\G /* check replication status */

या GTID के साथ, आप बस ऐसा कर सकते हैं,

...

mysql> CHANGE MASTER TO MASTER_HOST = '<hostname-or-ip>', MASTER_USER = '<user>', MASTER_PASSWORD = '<password>', MASTER_AUTO_POSITION = 1; /* master information to connect */

...

Wit

गैर-जीटीआईडी ​​​​दृष्टिकोण का उपयोग करने के लिए आपको पहले मास्टर की लॉग फ़ाइल और मास्टर की लॉग स्थिति निर्धारित करनी होगी। आप इसे स्विच करने से पहले मास्टर नोड में मास्टर की स्थिति को देखकर निर्धारित कर सकते हैं।

mysql> MASTER STATUS;

आप अपने सर्वर को सिंक_बिनलॉग =1 और innodb_flush_log_at_trx_commit =1 जोड़कर सख्त करने पर भी विचार कर सकते हैं, क्योंकि आपके मास्टर के क्रैश होने की स्थिति में, आपके पास इस बात की अधिक संभावना होगी कि मास्टर से लेन-देन आपके दास के साथ असंगत होगा ( एस)। ऐसे मामले में जो पदोन्नत मास्टर के पास एक सुसंगत डेटा स्रोत नोड होने की अधिक संभावना है।

हालांकि, यह आपके ड्रूपल डेटाबेस के लिए सबसे अच्छा तरीका नहीं हो सकता है क्योंकि यह लंबे समय तक डाउनटाइम लगा सकता है अगर सही तरीके से प्रदर्शन नहीं किया जाता है, जैसे अचानक नीचे ले जाया जा रहा है। यदि आपका मास्टर डेटाबेस नोड एक बग का अनुभव करता है जिसके परिणामस्वरूप डेटाबेस क्रैश हो जाता है, तो आपको अपने नए मास्टर के रूप में स्टैंडबाय पर प्रतीक्षा कर रहे किसी अन्य डेटाबेस को इंगित करने के लिए या अपने दास को मास्टर बनने के लिए अपने एप्लिकेशन की आवश्यकता होगी। आपको यह निर्दिष्ट करने की आवश्यकता होगी कि कौन सा नोड कार्यभार संभालना चाहिए और फिर उस नोड के अंतराल और स्थिरता का निर्धारण करना चाहिए। इसे हासिल करना उतना आसान नहीं है जितना कि SET GLOBAL read_only=1; मास्टर को ... (आदि) में बदलें, ऐसी कुछ स्थितियां हैं जिनके लिए गहन विश्लेषण की आवश्यकता होती है, इसे पूरा करने के लिए उस स्टैंडबाय सर्वर या पदोन्नत मास्टर में उपस्थित होने के लिए आवश्यक व्यवहार्य लेनदेन को देखते हुए।

MHA का उपयोग करके Drupal फ़ेलओवर

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

ऑर्केस्ट्रेटर का उपयोग करके Drupal विफलता

ऑर्केस्ट्रेटर को अब व्यापक रूप से अपनाया गया है और इसका उपयोग Github और Booking.com जैसे बड़े संगठनों द्वारा किया जा रहा है। यह न केवल आपको एक विफलता का प्रबंधन करने की अनुमति देता है, बल्कि टोपोलॉजी प्रबंधन, मेजबान खोज, रिफैक्टरिंग और पुनर्प्राप्ति भी करता है। यहाँ एक अच्छा बाहरी ब्लॉग है जो मुझे ऑर्केस्ट्रेटर के साथ इसके फेलओवर तंत्र के बारे में जानने के लिए बहुत उपयोगी लगा। यह एक दो भाग ब्लॉग श्रृंखला है; भाग एक और भाग दो।

MaxScale का उपयोग करके ड्रूपल फ़ेलओवर

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

क्लस्टरकंट्रोल का उपयोग करके ड्रूपल फ़ेलओवर

कई क्लस्टरकंट्रोल डेटाबेस प्रबंधन और निगरानी समाधानों की एक विस्तृत श्रृंखला प्रदान करता है। हमारे द्वारा ऑफ़र किए जाने वाले समाधानों का एक हिस्सा स्वचालित फ़ेलओवर, मैन्युअल फ़ेलओवर और क्लस्टर/नोड पुनर्प्राप्ति है। यह बहुत मददगार है जैसे कि यह आपके वर्चुअल डेटाबेस एडमिनिस्ट्रेटर के रूप में कार्य करता है, जब आपका क्लस्टर "पैनिक मोड" में होता है, तो आपको वास्तविक समय में सूचित करता है, जबकि रिकवरी सिस्टम द्वारा प्रबंधित की जा रही है। ClusterControl फेलओवर के बारे में अधिक जानने के लिए आप इस ब्लॉग को देख सकते हैं कि ClusterControl के साथ डेटाबेस फ़ेलओवर को स्वचालित कैसे करें।

अन्य MySQL समाधान

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

Drupal PostgreSQL विफलता

चूंकि Drupal PostgreSQL का समर्थन करता है, इसलिए हम PostgreSQL के लिए विफलता या स्विचओवर प्रक्रिया को लागू करने के लिए टूल की भी जांच करेंगे। PostgreSQL अंतर्निहित स्ट्रीमिंग प्रतिकृति का उपयोग करता है, हालांकि आप इसे तार्किक प्रतिकृति (संस्करण 10 में PostgreSQL के मुख्य तत्व के रूप में जोड़ा गया) का उपयोग करने के लिए भी सेट कर सकते हैं।

pg_ctlcluster का उपयोग करके Drupal विफलता

यदि आपका वातावरण उबंटू है, तो pg_ctlcluster का उपयोग करना विफलता प्राप्त करने का एक सरल और आसान तरीका है। उदाहरण के लिए, आप केवल निम्न कमांड चला सकते हैं:

$ pg_ctlcluster 9.6 pg_7653 promote

या RHEL/Centos के साथ, आप pg_ctl कमांड का उपयोग ठीक वैसे ही कर सकते हैं, जैसे

$ sudo -iu postgres /usr/lib/postgresql/9.6/bin/pg_ctl promote -D  /data/pgsql/slave/data

server promoting

आप पुनर्प्राप्ति.conf में ट्रिगर_फ़ाइल द्वारा निर्दिष्ट फ़ाइल नाम और पथ के साथ एक ट्रिगर फ़ाइल बनाकर लॉग-शिपिंग स्टैंडबाय सर्वर की विफलता को भी ट्रिगर कर सकते हैं।

आपको यहां स्टैंडबाय प्रमोशन या स्लेव प्रमोशन से सावधान रहना होगा क्योंकि आपको यह सुनिश्चित करना पड़ सकता है कि केवल एक मास्टर रीड-राइट अनुरोध स्वीकार कर रहा है। इसका मतलब है कि, स्विचओवर करते समय, आपको यह सुनिश्चित करना पड़ सकता है कि पिछले मास्टर को आराम दिया गया है या रोक दिया गया है।

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

Drupal PostgreSQL स्वचालित विफलता

मैन्युअल दृष्टिकोण के बजाय, आपको स्वचालित विफलता की आवश्यकता हो सकती है। यह विशेष रूप से तब आवश्यक होता है जब हार्डवेयर विफलता या वर्चुअल मशीन भ्रष्टाचार के कारण सर्वर डाउन हो जाता है। आपको अपने Drupal एप्लिकेशन के डाउनटाइम को कम करने के लिए स्वचालित रूप से फ़ेलओवर करने के लिए एक एप्लिकेशन की भी आवश्यकता हो सकती है। अब हम इनमें से कुछ टूल्स के बारे में जानेंगे जिनका उपयोग स्वचालित विफलता के लिए किया जा सकता है।

Drupal Failover useing Patroni

पैट्रोनी आपके लिए पायथन का उपयोग करके अपना स्वयं का अनुकूलित, उच्च-उपलब्धता समाधान बनाने के लिए एक टेम्पलेट है और - अधिकतम पहुंच के लिए - ज़ूकीपर, आदि, कॉन्सल या कुबेरनेट्स जैसे एक वितरित कॉन्फ़िगरेशन स्टोर। डेटाबेस इंजीनियर, DBA, DevOps इंजीनियर, और SRE जो डेटासेंटर में HA PostgreSQL को जल्दी से तैनात करना चाहते हैं-या कहीं और-उम्मीद है कि यह उपयोगी होगा

Pgpool का उपयोग करके Drupal Failover

Pgpool-II एक प्रॉक्सी सॉफ्टवेयर है जो PostgreSQL सर्वर और एक PostgreSQL डेटाबेस क्लाइंट के बीच बैठता है। स्वचालित विफलता होने के अलावा, इसमें कई विशेषताएं हैं जिनमें कनेक्शन पूलिंग, लोड संतुलन, प्रतिकृति और अधिक कनेक्शन को सीमित करना शामिल है। आप इस टूल के बारे में अधिक पढ़ सकते हैं हमारा तीन भाग ब्लॉग है; भाग एक, भाग दो, भाग तीन।

pglookout का उपयोग करके Drupal विफलता

pglookout एक PostgreSQL प्रतिकृति निगरानी और विफलता डेमॉन है। pglookout डेटाबेस नोड्स, उनकी प्रतिकृति स्थिति की निगरानी करता है, और उस स्थिति के अनुसार कार्य करता है। उदाहरण के लिए, पिछले वाले के गायब होने की स्थिति में नए मास्टर को बढ़ावा देने के लिए पूर्वनिर्धारित फ़ेलओवर कमांड को कॉल करना।

pglookout दो अलग-अलग नोड प्रकारों का समर्थन करता है, एक जो स्वयं db नोड्स पर स्थापित होते हैं और पर्यवेक्षक नोड्स जिन्हें कहीं भी स्थापित किया जा सकता है। PostgreSQL DB नोड्स पर pglookout होने का उद्देश्य क्लस्टर की प्रतिकृति स्थिति की निगरानी करना और उसके अनुसार कार्य करना है, पर्यवेक्षकों के पास अधिक सीमित प्रेषण है:वे क्लस्टर स्थिति को एक और दृष्टिकोण देने के लिए क्लस्टर स्थिति का निरीक्षण करते हैं।

Repmgr का उपयोग करके Drupal Failover

repmgr PostgreSQL सर्वर के क्लस्टर में प्रतिकृति और विफलता के प्रबंधन के लिए एक ओपन-सोर्स टूल सूट है। यह स्टैंडबाय सर्वर स्थापित करने, प्रतिकृति की निगरानी करने और विफलता या मैन्युअल स्विचओवर संचालन जैसे प्रशासनिक कार्यों को करने के लिए उपकरणों के साथ PostgreSQL की अंतर्निहित हॉट-स्टैंडबाय क्षमताओं को बढ़ाता है।

repmgr ने PostgreSQL के अंतर्निहित प्रतिकृति तंत्र के लिए उन्नत समर्थन प्रदान किया है क्योंकि वे 9.0 में पेश किए गए थे। वर्तमान repmgr श्रृंखला, repmgr 4, PostgreSQL 9.3 से शुरू की गई प्रतिकृति कार्यक्षमता में नवीनतम विकास का समर्थन करती है जैसे कि कैस्केडिंग प्रतिकृति, समयरेखा स्विचिंग और प्रतिकृति प्रोटोकॉल के माध्यम से आधार बैकअप।

क्लस्टरकंट्रोल का उपयोग करके ड्रूपल फ़ेलओवर

ClusterControl PostgreSQL के लिए स्वचालित विफलता का समर्थन करता है। यदि आपके पास कोई घटना है, तो आपके दास को स्वचालित रूप से मास्टर स्थिति में पदोन्नत किया जा सकता है। ClusterControl के साथ आप स्टैंडअलोन, रेप्लिकेटेड या क्लस्टर्ड PostgreSQL डेटाबेस को भी परिनियोजित कर सकते हैं। आप किसी एकल क्रिया से नोड को आसानी से जोड़ या हटा भी सकते हैं।

अन्य PostgreSQL Drupal विफलता समाधान

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

ड्रूपल फ़ेलओवर के लिए अतिरिक्त समाधान

हालांकि जिन टूल का मैंने पहले उल्लेख किया है, वे निश्चित रूप से विफलता के साथ आपकी समस्याओं के समाधान को संभालते हैं, कुछ ऐसे टूल जोड़ना जो फ़ेलओवर को बहुत आसान, सुरक्षित बनाते हैं, और आपकी डेटाबेस परत के बीच कुल अलगाव संतोषजनक हो सकता है।

ProxySQL का उपयोग करके Drupal विफलता

ProxySQL के साथ, आप बस अपनी Drupal वेबसाइटों या एप्लिकेशन को ProxySQL सर्वर होस्ट पर इंगित कर सकते हैं और यह निर्दिष्ट करेगा कि कौन सा नोड लेखन प्राप्त करेगा और कौन से नोड रीड प्राप्त करेंगे। जादू टीसीपी परत के भीतर पारदर्शी रूप से होता है और आपके एप्लिकेशन/वेबसाइट कॉन्फ़िगरेशन के लिए किसी बदलाव की आवश्यकता नहीं होती है। इसके अलावा, ProxySQL आपके डेटाबेस ट्रैफ़िक के लिए आपके लिखने और पढ़ने के अनुरोधों के लिए आपके लोड बैलेंसर के रूप में भी कार्य करता है। यह केवल तभी लागू होता है जब आप MySQL डेटाबेस वेरिएंट का उपयोग कर रहे हों।

Drupal Failover HAProxy का उपयोग करके Keepalived के साथ

HAProxy और Keepalived का उपयोग करना आपके Drupal के डेटाबेस में अधिक उच्च उपलब्धता और अतिरेक जोड़ता है। यदि आप फेलओवर करना चाहते हैं, तो यह आपके एप्लिकेशन के बिना किया जा सकता है, यह जाने बिना कि आपके डेटाबेस लेयर में क्या हो रहा है। बस अपने आवेदन को वीआरआरपी आईपी पर इंगित करें जिसे आपने अपने Keepalived में सेटअप किया है और सब कुछ आपके आवेदन से कुल अलगाव के साथ संभाला जाएगा। स्वचालित फ़ेलओवर होने को आपके एप्लिकेशन द्वारा पारदर्शी और अनजाने में नियंत्रित किया जाएगा, इसलिए एक बार कोई परिवर्तन नहीं होना चाहिए, उदाहरण के लिए, एक आपदा हुई है और एक पुनर्प्राप्ति या विफलता लागू की गई थी। इस सेटअप की अच्छी बात यह है कि यह MySQL और PostgreSQL दोनों डेटाबेस के लिए लागू है। मेरा सुझाव है कि आप हमारे ब्लॉग पोस्टग्रेएसक्यूएल लोड बैलेंसिंग को HAProxy और Keepalived का उपयोग करके देखें कि यह कैसे करना है।

उपरोक्त सभी विकल्प ClusterControl द्वारा समर्थित हैं। आप डेटाबेस को परिनियोजित या आयात कर सकते हैं और फिर ProxySQL, MaxScale, या HAProxy और Keepalived को परिनियोजित कर सकते हैं। सब कुछ प्रबंधित, मॉनिटर किया जाएगा, और आपकी ओर से आवश्यक किसी और कॉन्फ़िगरेशन के बिना स्वचालित रूप से सेट हो जाएगा। यह सब पृष्ठभूमि में होता है और स्वचालित रूप से तैयार-के-उत्पादन बनाता है।

निष्कर्ष

हमेशा चालू Drupal वेबसाइट या एप्लिकेशन का होना, विशेष रूप से यदि आप बड़ी मात्रा में ट्रैफ़िक की अपेक्षा कर रहे हैं, तो इसे बनाना जटिल हो सकता है। यदि आपके पास सही उपकरण, सही सेटअप और सही प्रौद्योगिकी स्टैक है, हालांकि, उच्च उपलब्धता और अतिरेक प्राप्त करना संभव है।

और यदि आप नहीं करते हैं? ठीक है तो ClusterControl इसे स्थापित करेगा और इसे आपके लिए बनाए रखेगा। वैकल्पिक रूप से, आप इस ब्लॉग में उल्लिखित तकनीकों का उपयोग करके एक सेटअप बना सकते हैं, जिनमें से अधिकांश ओपन सोर्स, निःशुल्क टूल हैं जो आपकी आवश्यकताओं को पूरा करेंगे।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में आयु की गणना कैसे करें

  2. ClusterControl 1.5 - स्वचालित बैकअप सत्यापन, बैकअप और क्लाउड एकीकरण से दास बनाएँ

  3. MySQL या MariaDB के लिए डेटाबेस विक्रेता लॉक-इन से बचना

  4. मारियाडीबी में MAKE_SET () कैसे काम करता है

  5. लोड बैलेंसर्स के माध्यम से अपने डेटाबेस घटकों को अत्यधिक उपलब्ध (HA) बनाना