Ubuntu 16.04 पर मारियाडाबी गैलेरा क्लस्टर को कैसे स्थापित करें

Ubuntu 16.04 पर मारियाडाबी गैलेरा क्लस्टर को कैसे स्थापित करें

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

मारिया डी बी गैलेरा बहुत सारी विशेषताएं प्रदान करता है, उनमें से कुछ नीचे सूचीबद्ध हैं:

  1. सिंक्रोनस प्रतिकृति
  2. स्वचालित नोड में शामिल होने
  3. सक्रिय-सक्रिय बहु-मास्टर टोपोलॉजी
  4. पंक्ति स्तर पर सही समानांतर प्रतिकृति।
  5. स्केलेबिलिटी पढ़ें और लिखें, छोटे क्लाइंट लैटेंसीज
  6. विफल नोड्स, क्लस्टर से स्वचालित ड्रॉप।

इस ट्यूटोरियल में, हम बताएंगे कि मारियो डीबी गैलेरा क्लस्टर 10.1 को कैसे सेटअप करें, जिसमें एक्सयूएनएक्स नोड्स उबंटू 3 सर्वर पर चल रहे हैं। हम सभी नोड्स के बीच डेटाबेस प्रतिकृति का भी परीक्षण करेंगे।

आवश्यकताएँ

  • उबंटू 16.04 सर्वर पर चलने वाले तीन नोड्स
  • Node1 स्थिर आईपी पते के साथ 192.168.0.102, नोड 2 स्थिर आईपी पता 192.168.0.103 और Node3 के साथ स्थिर IP पता 192.168.0.104 आपके सर्वर पर कॉन्फ़िगर करें।
  • सभी नोड्स पर sudo विशेषाधिकार सेटअप के साथ गैर-रूट उपयोगकर्ता।

शुरू करना

सबसे पहले, आपको नवीनतम संस्करण के साथ सभी नोड्स को अपडेट करना होगा। आप निम्न आदेश से उन सभी को अपडेट कर सकते हैं:

sudo apt-get update -y
sudo apt-get-upgrade -y

इसके बाद, इन परिवर्तनों को लागू करने के लिए सभी नोड्स को पुनरारंभ करें फिर, sudo उपयोगकर्ता के साथ लॉग इन करें और अगले चरण पर जाएं।

मारियाडाबी गैलेरा स्थापित करें

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

सबसे पहले, निम्न आदेश के साथ MariaDB रिपोजिटरी कुंजी जोड़ें:

sudo apt-key adv -recv-keys -keyserver hkp: //keyserver.ubuntu.com: 80 0xF1656XXXXXxXXXXXXXXxXXX

इसके बाद, रिपॉजिटरी जोड़ें और एपीटी कैश को निम्न कमांड के साथ अपडेट करें:

sudo add-apt-repository 'deb [arch = amdxNUMX, i64, ppc386EL] http://ftp.utexas.edu/mariadb/repo/64/ubuntu xenial मुख्य'
sudo apt-get update -y

एक बार रिपॉज़िटरी अपडेट हो जाने पर, मारियाडीबी को निम्न कमांड के साथ स्थापित करें:

sudo apt-get mariadb-server rsync -y स्थापित करें

उपरोक्त कमान मारिया डीबीबी को गैलेरा और कई निर्भरताओं के साथ स्थापित करेगी। गैलेरा पार्ट्स को कॉन्फ़िगर होने तक निष्क्रिय रहता है, जैसे प्लगइन या स्टोरेज इंजन। मारियाडीबी सभी नोड्स पर स्थापित हो जाने के बाद, आप मारियाडीबी को सुरक्षित करने के लिए आगे बढ़ सकते हैं

डिफ़ॉल्ट रूप से MariaDB स्थापना सुरक्षित नहीं है, इसलिए आपको मारियाडीबी स्थापना को सुरक्षित करना होगा। आप mysql_secure_installation स्क्रिप्ट को चलाकर ऐसा कर सकते हैं:

sudo mysql_secure_installation

इस प्रक्रिया में, आपको रूट पासवर्ड सेट करने के लिए कहा जाएगा, अनाम उपयोगकर्ता हटा दें, रूट लॉगिन को दूर से अस्वीकार करें और टेस्ट डेटाबेस को हटा दें। नीचे दिए गए सभी प्रश्नों का उत्तर दें:

रूट के लिए वर्तमान पासवर्ड दर्ज करें (किसी के लिए दर्ज करें): रूट पासवर्ड बदलें? [वाई / एन] एन अज्ञात उपयोगकर्ताओं को हटा दें? [वाई / एन] वाई रूट लॉगिन दूरस्थ रूप से अस्वीकार? [वाई / एन] वाई परीक्षण डेटाबेस निकालें और उस तक पहुंच? [वाई / एन] वाई अब विशेषाधिकार तालिका पुनः लोड करें? [वाई / एन] वाई

एक बार जब मारियाडीबी सभी नोड्स पर सुरक्षित हो जाए, तो आप अगले चरण पर जा सकते हैं।

Node1 पर MariaDB क्लस्टर सेट करें

सबसे पहले, Node1 पर जाएं और गैलेरा के लिए एक कॉन्फ़िगरेशन फ़ाइल बनाएं। डिफ़ॉल्ट रूप से, मारियाडीबी /etc/mysql/conf.d/ निर्देशिका से कॉन्फ़िगरेशन पढ़ता है ऐसा करने के लिए, निम्न कमांड चलाएं:

सुडो नैनो /etc/mysql/conf.d/galera.cnf

निम्नलिखित पंक्तियां जोड़ें:

[mysqld] binlog_format = ROW डिफ़ॉल्ट-स्टोरेज-इंजन = innodb innodb_autoinc_lock_mode = 2 बाइंड-एड्रेस = 0.0.0.0 # गैलेरा प्रदाता कॉन्फ़िगरेशन wsrep_on = wsrep_provider = / usr / lib / galera / libgalera_smm.so # गैलेरा क्लस्टर कॉन्फ़िगरेशन wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # गैलेरा सिंक्रनाइज़ेशन कॉन्फ़िगरेशन wsrep_sst_method = rsync # गैलेरा नोड कॉन्फ़िगरेशन wsrep_node_address = "192.168.0.102" wsrep_node_name = "Node1"

जब आप समाप्त हो जाएं तो फ़ाइल को सहेजें

ध्यान दें: 192.168.0.102 Node1 का आईपी पता है

गैलेरा क्लस्टर पर नोड 2 जोड़ें

अगला, Node2 पर जाएं और गैलेरा के लिए एक विन्यास फाइल बनाएं:

सुडो नैनो /etc/mysql/conf.d/galera.cnf

निम्नलिखित पंक्तियां जोड़ें:

[mysqld] binlog_format = ROW डिफ़ॉल्ट-स्टोरेज-इंजन = innodb innodb_autoinc_lock_mode = 2 बाइंड-एड्रेस = 0.0.0.0 # गैलेरा प्रदाता कॉन्फ़िगरेशन wsrep_on = wsrep_provider = / usr / lib / galera / libgalera_smm.so # गैलेरा क्लस्टर कॉन्फ़िगरेशन wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # गैलेरा सिंक्रनाइज़ेशन कॉन्फ़िगरेशन wsrep_sst_method = rsync # गैलेरा नोड कॉन्फ़िगरेशन wsrep_node_address = "192.168.0.103" wsrep_node_name = "Node2"

जब आप समाप्त हो जाएं तो फ़ाइल को सहेजें

ध्यान दें: 192.168.0.103 Node2 का आईपी पता है।

गैलेरा क्लस्टर पर नोड 3 जोड़ें

अगला, Node3 पर जाएं और गैलेरा के लिए एक विन्यास फाइल बनाएं:

सुडो नैनो /etc/mysql/conf.d/galera.cnf

निम्नलिखित पंक्तियां जोड़ें:

[mysqld] binlog_format = ROW डिफ़ॉल्ट-स्टोरेज-इंजन = innodb innodb_autoinc_lock_mode = 2 बाइंड-एड्रेस = 0.0.0.0 # गैलेरा प्रदाता कॉन्फ़िगरेशन wsrep_on = wsrep_provider = / usr / lib / galera / libgalera_smm.so # गैलेरा क्लस्टर कॉन्फ़िगरेशन wsrep_cluster_name = "galera_cluster" wsrep_cluster_address = "gcomm: // 192.168.0.102,192.168.0.103,192.168.0.104" # गैलेरा सिंक्रनाइज़ेशन कॉन्फ़िगरेशन wsrep_sst_method = rsync # गैलेरा नोड कॉन्फ़िगरेशन wsrep_node_address = "192.168.0.104" wsrep_node_name = "Node3"

जब आप समाप्त हो जाएं तो फ़ाइल को सहेजें

ध्यान दें: 192.168.0.104 Node3 का आईपी पता है।

फ़ायरवॉल को कॉन्फ़िगर करें

गैलेरा क्लस्टर, MySQL क्लाइंट कनेक्शन के लिए 3306 के चार बंदरगाहों, स्टेट स्नैपशॉट ट्रांसफर के लिए 4444, गैलेरा क्लस्टर प्रतिलिपि यातायात के लिए 4567 और इन्वर्मेंटल स्टेट ट्रांसफर के लिए 4568 का उपयोग करता है। इसलिए आपको इन सभी पोर्ट को यूएफडब्ल्यू फ़ायरवॉल का उपयोग करने की आवश्यकता होगी। आप निम्न नोड्स को सभी नोड पर चलाकर ऐसा कर सकते हैं:

सबसे पहले, यूएफडब्ल्यू फ़ायरवॉल को निम्न कमांड के साथ सक्षम करें:

सुडो ufw सक्षम करें

आगे, सभी बंदरगाहों को निम्न कमांड के साथ अनुमति दें:

sudo ufw 3306 / tcp अनुमति दें
sudo ufw 4444 / tcp अनुमति दें
sudo ufw 4567 / tcp अनुमति दें
sudo ufw 4568 / tcp अनुमति दें
sudo ufw 4567 / udp की अनुमति दें

आप निम्न कमांड के साथ फ़ायरवॉल की स्थिति की जांच कर सकते हैं:

सूडो ufw स्थिति

एक बार यूएफडब्ल्यू फ़ायरवॉल को सभी नोड्स पर कॉन्फ़िगर किया गया है, तो आप अगले चरण पर जा सकते हैं।

मारिया डी बी गैलेरा क्लस्टर प्रारंभ करें

सफलतापूर्वक सभी नोड्स को कॉन्फ़िगर करने के बाद, Node1 पर जाएं और गैलेरा क्लस्टर प्रारंभ करें।

इससे पहले कि गैलेरा शुरू हो सकता है, आपको यह सुनिश्चित करना होगा कि सभी नोड्स पर मारियाडीबी सेवा बंद कर दी जाए।

सभी नोड्स पर निम्न आदेश चलाएं:

सुडो सिस्टमकैट स्टॉप मायसक्ल

अब, निम्न कमांड के साथ नोडएक्सएक्सएक्सएक्स पर गैलेरा क्लस्टर शुरू करें:

sudo galera_new_cluster

अब, जांचें कि क्या क्लस्टर चल रहा है या नहीं निम्न कमांड के साथ:

mysql -u root -p -e "शो स्थिति की तरह 'wsrep_cluster_size'"

यदि सब कुछ ठीक है तो आपको निम्न आउटपुट दिखना चाहिए:

+ -------------------- + ------- + | Variable_name | मूल्य | + -------------------- + ------- + | wsrep_cluster_size | 1 | + -------------------- + ------- +

Node2 पर, मारियाडाबी सेवा शुरू करें:

sudo systemctl शुरू mysql

आप MariaDB सेवा की स्थिति की जांच कर सकते हैं चाहे वह काम कर रही है या नहीं, निम्न कमांड के साथ:

सुडो सिस्टमस्टल स्थिति mysql

यदि सब कुछ ठीक है, तो आपको निम्नलिखित आउटपुट दिखना चाहिए:

?? mariadb.service - मारियाडीबी डेटाबेस सर्वर लोड किया गया: लोड किया गया (/lib/systemd/system/mariadb.service; सक्षम; विक्रेता प्रीसेट: सक्षम) सक्रिय: सक्रिय (चल रहा है) सूर्य 2017-09-17 10: 11: 20 EDT; 10min पहले प्रक्रिया: 715 ExecStartPost = / bin / sh -c systemctl unset-environment _WSREP_START_POSITION (कोड = निकाला गया, स्थिति = 0 / सफलता) प्रक्रिया: 713 ExecStartPost = / etc / mysql / डेबियन-प्रारंभ (कोड = exited, status = 0 / सफलता) प्रक्रिया: 545 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = || वीएआर = `/ usr / bin / galera_recovery`; [$? -ईक 0] && systemctl सेट प्रक्रिया: 535 ExecStartPre = / bin / sh -c systemctl unset-environment _WSREP_START_POSITION (कोड = निकाला गया, स्थिति = 0 / सफलता) प्रक्रिया: 514 ExecStartPre = / usr / bin / install -m 755 -o mysql -g root -d / var / run / mysqld (कोड = exited, स्थिति = 0 / सफलता) मुख्य पीआईडी: 661 (mysqld) स्थिति: "अब अपने SQL अनुरोध लेना ..." कार्य: 26 (सीमा: 4915) CGroup: /system.slice/mariadb.service ?????? 661 / usr / sbin / mysqld सितंबर 17 10: 11: 11 डेबियन सिस्टम [1]: मारियाडीबी डेटाबेस सर्वर शुरू करना ... सितंबर 17 10: 11: 15 डेबियन mysqld [661]: 2017-09-17 10: 11: 15 140287134630464 [नोट] / usr / sbin / mysqld (mysqld 10.1.26-MariaDB-0 + deb9u1) प्रक्रिया के रूप में शुरू होता है Sep 17 10: 11: 20 डेबियन systemd [1 ]: मारियाडीबी डाटाबेस सर्वर शुरू किया।

अब, आपका दूसरा नोड स्वतः क्लस्टर से जुड़ा होना चाहिए। आप निम्न आदेश के साथ यह सत्यापित कर सकते हैं:

mysql -u root -p -e "शो स्थिति की तरह 'wsrep_cluster_size'"

अगर सब कुछ अच्छी तरह से काम कर रहा है, क्लस्टर का आकार दो पर सेट होना चाहिए:

+ -------------------- + ------- + | Variable_name | मूल्य | + -------------------- + ------- + | wsrep_cluster_size | 2 | + -------------------- + ------- +

Node3 पर, मारियाडाबी सेवा शुरू करें:

sudo systemctl शुरू mysql
mysql -u root -p -e "शो स्थिति की तरह 'wsrep_cluster_size'"

यदि सब कुछ ठीक काम कर रहा है, तो क्लस्टर का आकार तीन पर सेट होना चाहिए:

+ -------------------- + ------- + | Variable_name | मूल्य | + -------------------- + ------- + | wsrep_cluster_size | 3 | + -------------------- + ------- +

आप क्लस्टर अब काम कर रहे हैं और एक-दूसरे को संप्रेषण कर रहे हैं

टेस्ट डेटाबेस प्रतिकृति

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

सबसे पहले, निम्न आदेश के साथ MariaDb कंसोल पर लॉगिन करें:

mysql -u root -p

अपना रूट पासवर्ड दर्ज करें और नाम के साथ एक डेटाबेस बनाएँ test_db:

मारियाडीबी [(कोई नहीं)]> डेटाबेस टेस्ट_डीबी बनाएं;
मारियाडीबी [(कोई नहीं)]> डेटाबेस दिखाएं;

+ -------------------- + | डाटाबेस | + -------------------- + | test_db | + -------------------- +

अब Node2 और Node3 पर जाएं, फिर प्रतिकृति काम कर रहा है या नहीं:

mysql -u root -p
मारियाडीबी [(कोई नहीं)]> डेटाबेस दिखाएं;

+ -------------------- + | डाटाबेस | + -------------------- + | test_db | + -------------------- +

बधाई! आपने Ubuntu 16.04 सर्वर पर मारियाडीबी गैलेरा क्लस्टर को सफलतापूर्वक स्थापित और कॉन्फ़िगर किया है।

निष्कर्ष

मुझे आशा है कि अब आपके पास Ubuntu 16.04 पर मारियाडीबी गैलेरा क्लस्टर को स्थापित और कॉन्फ़िगर करने के लिए पर्याप्त ज्ञान है। अब आप अलग-अलग नोड्स के कई, या दर्जनों तक आसानी से बढ़ा सकते हैं। यदि आपके कोई संदेह या अधिक प्रश्न हैं, तो लिंक देखें गैलेरा क्लस्टर डॉक्टर

स्रोत

संबंधित पोस्ट

उत्तर छोड़ दें

यह साइट स्पैम को कम करने के लिए अकिस्मेट का उपयोग करती है। जानें कि आपका डेटा कैसे संसाधित किया जाता है.