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

CentOS के लिए मारियाडीबी क्लस्टर ऑफ़लाइन स्थापना

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

इस ब्लॉग पोस्ट में, हम CentOS होस्ट पर एक ऑफ़लाइन वातावरण में तीन-नोड मारियाडीबी क्लस्टर स्थापित करने जा रहे हैं। इस स्थापना के लिए निम्नलिखित तीन नोड्स पर विचार करें:

  • mariadb1 - 192.168.0.241
  • mariadb2 - 192.168.0.242
  • mariadb3 - 192.168.0.243

पैकेज डाउनलोड करें

सबसे अधिक समय लेने वाला हिस्सा हमारे इंस्टॉलेशन के लिए आवश्यक सभी पैकेज प्राप्त कर रहा है। सबसे पहले, संबंधित मारियाडीबी रिपॉजिटरी में जाएं जिसे हम इंस्टॉल करना चाहते हैं (इस उदाहरण में, हमारा ओएस सेंटोस 7 64 बिट है):

  • MariaDB 10.4:http://yum.mariadb.org/10.4/centos7-amd64/rpms/ 
  • MariaDB 10.3:http://yum.mariadb.org/10.3/centos7-amd64/rpms/
  • MariaDB 10.2:http://yum.mariadb.org/0.2/centos7-amd64/rpms/
  • MariaDB 10.1:http://yum.mariadb.org/10.1/centos7-amd64/rpms/ 
  • MariaDB 10.0:http://yum.mariadb.org/10.0/centos7-amd64/rpms/

सुनिश्चित करें कि आप सभी मारियाडीबी-संबंधित पैकेजों के लिए ठीक उसी लघु संस्करण को डाउनलोड करते हैं। इस उदाहरण में, हमने मारियाडीबी संस्करण 10.4.13 डाउनलोड किया। इस रिपॉजिटरी में पैकेजों का एक गुच्छा है, लेकिन हमें केवल मारियाडीबी क्लस्टर चलाने के लिए उन सभी की आवश्यकता नहीं है। कुछ पैकेज पुराने हैं और डिबगिंग उद्देश्यों के लिए हैं। मारियाडीबी गैलेरा 10.4 और सेंटोस 7 के लिए, हमें मारियाडीबी 10.4 रिपॉजिटरी से निम्नलिखित पैकेज डाउनलोड करने होंगे:

  • जेमलोक
  • galera-3/galera-4
  • libzstd
  • MariaDB बैकअप
  • MariaDB सर्वर
  • MariaDB क्लाइंट
  • MariaDB साझा किया गया
  • MariaDB आम
  • MariaDB compat

निम्नलिखित wget कमांड डाउनलोड प्रक्रिया को सरल करेंगे:

wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/galera-4-26.4.4-1.rhel7.el7.centos.x86_64.rpm
wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/jemalloc-3.6.0-1.el7.x86_64.rpm
wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/libzstd-1.3.4-1.el7.x86_64.rpm
wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/MariaDB-backup-10.4.13-1.el7.centos.x86_64.rpm
wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/MariaDB-client-10.4.13-1.el7.centos.x86_64.rpm
wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/MariaDB-common-10.4.13-1.el7.centos.x86_64.rpm
wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/MariaDB-compat-10.4.13-1.el7.centos.x86_64.rpm
wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/MariaDB-server-10.4.13-1.el7.centos.x86_64.rpm
wget http://yum.mariadb.org/10.4/centos7-amd64/rpms/MariaDB-shared-10.4.13-1.el7.centos.x86_64.rpm

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

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

ISO छवि को स्थानीय रूप से माउंट करें

स्थापना के दौरान कुछ निर्भरताओं को संतुष्ट करने की आवश्यकता होती है और इसे आसानी से प्राप्त करने का एक तरीका डेटाबेस सर्वर पर ऑफ़लाइन यम रिपॉजिटरी स्थापित करना है। सबसे पहले, हमें "isos" निर्देशिका के अंतर्गत, निकटतम CentOS दर्पण साइट से CentOS 7 DVD ISO छवि डाउनलोड करनी होगी:

$ wget http://centos.shinjiru.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-2003.iso

आप या तो छवि को स्थानांतरित कर सकते हैं और इसे सीधे माउंट कर सकते हैं या इसे एक डीवीडी में जला सकते हैं और डीवीडी ड्राइव का उपयोग कर सकते हैं और इसे सर्वर से जोड़ सकते हैं। इस उदाहरण में, हम सर्वर में ISO छवि को DVD के रूप में माउंट करने जा रहे हैं:

$ mkdir -p /media/CentOS
$ mount -o loop /root/CentOS-7-x86_64-DVD-2003.iso /media/CentOS

फिर, CentOS-Media (c7-media) रिपॉजिटरी को सक्षम करें और मानक ऑनलाइन रिपॉजिटरी (आधार, अपडेट, अतिरिक्त) को अक्षम करें:

$ yum-config-manager --disable base,updates,extras
$ yum-config-manager --enable c7-media

अब हम इंस्टालेशन के लिए तैयार हैं।

MariaDB सर्वर को इंस्टाल करना और कॉन्फ़िगर करना

यदि हमारे पास सभी आवश्यक पैकेज तैयार हैं, तो स्थापना चरण बहुत सरल हैं। सबसे पहले, SElinux को निष्क्रिय करने की अनुशंसा की जाती है (या इसे अनुमेय मोड पर सेट करें):

$ setenforce 0
$ sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

निर्देशिका में नेविगेट करें जहां सभी संकुल स्थित हैं, इस मामले में, /root/installer/. सुनिश्चित करें कि सभी पैकेज वहां मौजूद हैं:

$ cd /root/installer
$ ls -1
galera-4-26.4.4-1.rhel7.el7.centos.x86_64.rpm
jemalloc-3.6.0-1.el7.x86_64.rpm
libzstd-1.3.4-1.el7.x86_64.rpm
MariaDB-backup-10.4.13-1.el7.centos.x86_64.rpm
MariaDB-client-10.4.13-1.el7.centos.x86_64.rpm
MariaDB-common-10.4.13-1.el7.centos.x86_64.rpm
MariaDB-compat-10.4.13-1.el7.centos.x86_64.rpm
MariaDB-server-10.4.13-1.el7.centos.x86_64.rpm
MariaDB-shared-10.4.13-1.el7.centos.x86_64.rpm

आइए पहले मारियाबैकअप डिपेंडेंसी इंस्टॉल करें जिसे सोकैट कहा जाता है और फिर यम लोकलइंस्टॉल कमांड को RPM पैकेज को इंस्टाल करने और सभी डिपेंडेंसी को संतुष्ट करने के लिए रन करें:

$ yum install socat
$ yum localinstall *.rpm

MariaDB सेवा प्रारंभ करें और स्थिति जांचें:

$ systemctl start mariadb
$ systemctl status mariadb

सुनिश्चित करें कि आपको इस प्रक्रिया में कोई त्रुटि नहीं दिखाई दे रही है। फिर, MySQL रूट पासवर्ड और हार्डनिंग को कॉन्फ़िगर करने के लिए mysql_secure_installation स्क्रिप्ट चलाएँ:

$ mysql_secure_installation

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

$ mysql -uroot -p
MariaDB> CREATE USER [email protected] IDENTIFIED BY 'P455w0rd';
MariaDB> GRANT SELECT, INSERT, CREATE, RELOAD, PROCESS, SUPER, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT, CREATE TABLESPACE ON *.* TO [email protected];

हमें MariaDB क्लस्टर कार्यात्मकताओं को लोड करने के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल को संशोधित करने की आवश्यकता है। /etc/my.cnf.d/server.cnf खोलें और सुनिश्चित करें कि निम्न पंक्तियाँ न्यूनतम कॉन्फ़िगरेशन के लिए मौजूद हैं:

[mysqld]
log_error = /var/log/mysqld.log

[galera]
wsrep_on=ON
wsrep_provider=/usr/lib64/galera-4/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.0.241,192.168.0.242,192.168.0.243
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
innodb_flush_log_at_trx_commit=2
wsrep_sst_method=mariabackup
wsrep_sst_auth=backup_user:P455w0rd
wsrep_node_address=192.168.0.241 # change this

मारियाडीबी क्लस्टर संचार के लिए डेटाबेस नोड के आईपी पते के साथ wsrep_node_address मान को बदलना न भूलें। साथ ही, आपके द्वारा इंस्टॉल किए गए मारियाडीबी सर्वर और मारियाडीबी क्लस्टर संस्करण के आधार पर wsrep_provider मान भिन्न हो सकता है। libgalera_smm.so पथ का पता लगाएँ और उसके अनुसार यहाँ निर्दिष्ट करें।

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

क्लस्टर बूटस्ट्रैपिंग

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

$ systemctl stop mariadb
$ galera_new_cluster
$ systemctl status mariadb

अन्य दो नोड्स (mariadb2 और mariadb3) पर, हम इसे मानक MariaDB स्टार्ट कमांड का उपयोग करके शुरू करने जा रहे हैं:

$ systemctl stop mariadb
$ systemctl start mariadb

सत्यापित करें कि क्या सभी नोड प्रत्येक नोड पर wsrep-संबंधित स्थिति को देखकर क्लस्टर का हिस्सा हैं:

MariaDB> SHOW STATUS LIKE 'wsrep%';

सुनिश्चित करें कि रिपोर्ट की गई स्थिति इस प्रकार है:

wsrep_local_state_comment     | Synced
wsrep_cluster_size            | 3
wsrep_cluster_status          | Primary

मारियाडीबी 10.4 और गैलेरा क्लस्टर 4 के लिए, हम किसी भी मारियाडीबी नोड पर तालिका mysql.wsrep_cluster_members से सीधे क्लस्टर सदस्य जानकारी प्राप्त कर सकते हैं:

$ mysql -uroot -p -e 'select * from mysql.wsrep_cluster_members'
Enter password:
+--------------------------------------+--------------------------------------+---------------+-----------------------+
| node_uuid                            | cluster_uuid                         | node_name     | node_incoming_address |
+--------------------------------------+--------------------------------------+---------------+-----------------------+
| 35177dae-a7f0-11ea-baa4-1e4604dc8f68 | de82efcb-a7a7-11ea-8273-b7a81016a75f | maria1.local  | AUTO                  |
| 3e6f9d0b-a7f0-11ea-a2e9-32f4a0481dd9 | de82efcb-a7a7-11ea-8273-b7a81016a75f | maria2.local  | AUTO                  |
| fd63108a-a7f1-11ea-b100-937c34421a67 | de82efcb-a7a7-11ea-8273-b7a81016a75f | maria3.local  | AUTO                  |
+--------------------------------------+--------------------------------------+---------------+-----------------------+

यदि क्लस्टर बूटस्ट्रैपिंग के दौरान कुछ गलत हो जाता है, तो सभी MariaDB नोड्स पर /var/log/mysqld.log पर MySQL त्रुटि लॉग की जाँच करें। एक बार क्लस्टर बूटस्ट्रैप और चलने के बाद, मारियाडीबी सेवा शुरू करने के लिए फिर से galera_new_cluster स्क्रिप्ट न चलाएं। यह मानक "systemctl start/restart mariadb" कमांड का उपयोग करके पर्याप्त होना चाहिए, जब तक कि प्राथमिक राज्य में अब कोई डेटाबेस नोड न हो। यह कदम क्यों महत्वपूर्ण है, यह समझने के लिए इस ब्लॉग पोस्ट को देखें, MySQL या MariaDB क्लस्टर को बूटस्ट्रैप कैसे करें।

बोनस चरण

अब आपके पास पहले से ही एक डेटाबेस क्लस्टर है जो बिना किसी निगरानी और प्रबंधन सुविधाओं के चल रहा है। आप डेटाबेस क्लस्टर को ClusterControl में आयात क्यों नहीं करते? किसी अन्य अलग सर्वर पर ClusterControl स्थापित करें, और ClusterControl सर्वर से सभी डेटाबेस नोड्स में पासवर्ड रहित SSH सेटअप करें। माना जाता है कि ClusterControl सर्वर IP 192.168.0.240 है, ClusterControl सर्वर पर निम्न कमांड चलाएँ:

$ whoami
root

$ ssh-keygen -t rsa # generate key, press Enter for all prompts
$ ssh-copy-id [email protected] # root password on 192.168.0.241
$ ssh-copy-id [email protected] # root password on 192.168.0.242
$ ssh-copy-id [email protected] # root password on 192.168.0.243

फिर ClusterControl -> Import -> MySQL Galera पर जाएं और आवश्यक SSH विवरण दर्ज करें:

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

आयात पर क्लिक करें और आयात कार्य पूरा होने तक प्रतीक्षा करें। आपको इसे क्लस्टर सूची के अंतर्गत देखना चाहिए:

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


  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. मारियाडीबी में डेटाटाइम वैल्यू से मिनट कैसे घटाएं?

  3. MySQL और MariaDB में आकस्मिक डेटा विलोपन को कैसे दूर करें

  4. मैन्युअल पुनर्प्राप्ति सेटअप के लिए DBaaS विफलता समाधान की तुलना करना

  5. मारियाडीबी CONNECTION_ID () समझाया गया