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

CentOS 7 . पर Percona XtraDB क्लस्टर स्थापित करना

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

पूर्वापेक्षा:

Linux सर्वर पर एक percona XtraDB क्लस्टर को कॉन्फ़िगर करने के लिए हमें तीन सर्वरों की आवश्यकता है, जानकारी निम्न की तरह है:

सर्वर percona1:192.168.56.110

सर्वर percona2:192.168.56.113

सर्वर percona3:192.168.56.114

ओएस:सेंटोस 7

आप दो सर्वरों के साथ भी जा सकते हैं लेकिन आधिकारिक दस्तावेज़ सर्वरों की एक विषम संख्या की सिफारिश करता है। जैसे 3,5,7 और इसी तरह। बस किसी भी संख्या में नोड्स के लिए मत जाओ, वे इसे स्प्लिट-ब्रेन कहते हैं। स्प्लिट-ब्रेन एक ऐसी स्थिति है जिसमें नोड्स एक दूसरे से संपर्क खो देते हैं और फिर दोनों साझा संसाधनों पर नियंत्रण करने की कोशिश करते हैं या एक साथ क्लस्टर सेवा प्रदान करते हैं

नोट:हमें उस नोड पर रूट एक्सेस की आवश्यकता है जहां हम Percona XtraDB क्लस्टर स्थापित करेंगे
(या तो रूट विशेषाधिकार वाले उपयोगकर्ता के रूप में लॉग इन किया गया है या सूडो के साथ कमांड चलाने में सक्षम हैं

पूर्व जांच:

अपनी /etc/hosts फ़ाइल में नीचे प्रविष्टियाँ जोड़ें ——> सभी सर्वर पर (percona1, percona2, percona3)

192.168.56.110 percona1.localdomain percona1
192.168.56.113 percona2.localdomain percona2
192.168.56.114 percona3.localdomain percona3

फ़ायरवॉल पोर्ट खोलें:

हमें सभी सर्वर (percona1, percona2, percona3)
3306
4444
4567
4568

पर पोर्ट के नीचे खोलने की आवश्यकता है
फ़ायरवॉल-cmd --zone=public --add-service=mysql --permanent
फ़ायरवॉल-cmd --zone=public --add-port=3306/tcp --permanentfirewall-cmd --zone=public --add-port=4567/tcp --permanentfirewall-cmd --zone=public - -ऐड-पोर्ट =4568/टीसीपी --परमानेंटफ़ायरवॉल-सीएमडी --ज़ोन=पब्लिक --ऐड-पोर्ट=4444/टीसीपी --परमानेंटफ़ायरवॉल-सीएमडी--ज़ोन=पब्लिक --ऐड-पोर्ट=4567/यूडीपी--स्थायीफ़ायरवॉल- cmd --reloadfirewall-cmd --list-all
[[email protected] ~]# फ़ायरवॉल-cmd --list-allpublic (सक्रिय)लक्ष्य:defaulticmp-block-inversion:nointerfaces:enp0s3 enp0s8sources:services:ssh dhcpv6-client mysqlports:3306/tcp 4567/tcp 4568/tcp 4444/tcp 4567/udpprotocols:बहाना:noforward-ports:स्रोत-पोर्ट:icmp-ब्लॉक:समृद्ध नियम

SELinux अक्षम करें:——-> सभी सर्वर पर (percona1, percona2, percona3)

[[email protected] ~]# setenforce 0

यह वर्तमान सत्र के लिए SELinux को अनुमेय मोड में डाल देगा लेकिन हमें इसे स्थायी रूप से अक्षम करने की आवश्यकता है। />vi /etc/sysconfig/selinux
SELINUX=disabled

सभी सर्वरों को एक दूसरे के लिए सुलभ होना चाहिए, ताकि प्रत्येक सर्वर तक पहुंच की जांच की जा सके।

प्रीरेक RPM के नीचे इंस्टाल करें:——-> सभी सर्वर पर (percona1, percona2, percona3)

एपेल-रिलीज़
लिबेव
सोसाइट

[[email protected] ~]# yum -y install epel-release इंस्टाल:epel-release.noarch 0:7-11[[email protected] yum.repos.d]# yum -y install libev इंस्टाल :libev.x86_64 0:4.15-7.el7[[email protected] Desktop]# yum -y install socat Installed:socat.x86_64 0:1.7.3.2-2.el7

Percona रिपॉजिटरी जोड़ें:——-> सभी सर्वर पर (percona1, percona2, percona3)

अब हम तीनों सर्वरों (percona1, percona2, percona3) में percona रिपॉजिटरी को जोड़ देंगे:

[[email protected] ~]# sudo yum -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpmInstalled:percona-release.noarch 0:1.0-13 पूरा !

Percona-XtraDB-Cluster स्थापित करें:——-> सभी सर्वर पर (percona1, percona2, percona3)

[[email protected] ~]# yum install -y Percona-XtraDB-Cluster-57लोडेड प्लगइन्स:सबसे तेज मिरर, langpacksकैश्ड होस्टफाइल से मिरर स्पीड लोड हो रही है...इंस्टॉल किया गया:Percona-XtraDB-Cluster-57.x86_64 0:5.7 .27-31.39.1.el7 Percona-XtraDB-Cluster-shared-57.x86_64 0:5.7.27-31.39.1.el7 Percona-XtraDB-Cluster-shared-compat-57.x86_64 0:5.7.27-31.39 .1.el7निर्भरता स्थापित:Percona-XtraDB-क्लस्टर-क्लाइंट-57.x86_64 0:5.7.27-31.39.1.el7 Percona-XtraDB-Cluster-server-57.x86_64 0:5.7.27-31.39.1.el7 percona-xtrabackup-24.x86_64 0:2.4.17-1.el7 perl-DBD-MySQL.x86_64 0:4.023-6.el7 perl-Digest.noarch 0:1.17-245.el7 perl-Digest-MD5.x86_64 0 :2.52-3.el7 qpress.x86_64 0:11-1.el7Replaced:mariadb-libs.x86_64 1:5.5.60-1.el7_5पूर्ण!

देखें कि Percona XtraDB स्थापित है या नहीं।

[[email protected] ~]# यम सर्च Percona-XtraDBनोट: यहाँ तक उपरोक्त सभी चरणों को सभी सर्वरों (percona1, percona2, percona3)
पर निष्पादित किया जाना चाहिए।
राइट-सेट प्रतिकृति के लिए नोड्स को कॉन्फ़िगर करना
Percona1 पर:

आइए MySQL सर्वर शुरू करें और केवल percona1 सर्वर पर रूट पासवर्ड बदलें

[[email protected] ~]# systemctl start mysql[[email protected] ~]# grep पासवर्ड /var/log/mysqld.log2019-12-11T10:35:12.135133Z 1 [नोट] एक अस्थायी पासवर्ड [email protected] के लिए जनरेट किया गया है:hJ(l8ySe>f>ENote:पासवर्ड "hJ(l8ySe>f>E" कॉपी करें) हम इस पासवर्ड को बदलने जा रहे हैं:[[email protected] ~]# mysql_secure_installation --- ----> सभी सर्वर पर (percona1, percona2, percona3) MySQL सर्वर परिनियोजन को सुरक्षित करना। उपयोगकर्ता रूट के लिए पासवर्ड दर्ज करें:उपयोगकर्ता खाता रूट के लिए मौजूदा पासवर्ड समाप्त हो गया है। कृपया एक नया पासवर्ड सेट करें। नया पासवर्ड:पुनः दर्ज करें नया पासवर्ड:पासवर्ड का परीक्षण करने और सुरक्षा में सुधार के लिए पासवर्ड प्लगिन का उपयोग किया जा सकता है। यह पासवर्ड की ताकत की जांच करता है और उपयोगकर्ताओं को केवल उन पासवर्डों को सेट करने की अनुमति देता है जो पर्याप्त सुरक्षित हैं। क्या आप वैध पासवर्ड प्लगइन सेट करना चाहते हैं? हां, किसी के लिए वाई दबाएं नहीं के लिए अन्य कुंजी:रूट के लिए मौजूदा पासवर्ड का उपयोग करना। रूट के लिए पासवर्ड बदलें? ((हाँ के लिए y|Y दबाएं, नहीं के लिए कोई अन्य कुंजी) :... स्किप करना। डिफ़ॉल्ट रूप से, एक MySQL इंस्टॉल ation में एक अनाम उपयोगकर्ता है, जो किसी को भी उनके लिए एक उपयोगकर्ता खाता बनाए बिना MySQL में लॉग इन करने की अनुमति देता है। इसका उद्देश्य केवल परीक्षण करना है, और स्थापना को थोड़ा आसान बनाने के लिए है। आपको उत्पादन वातावरण में जाने से पहले उन्हें हटा देना चाहिए। अनाम उपयोगकर्ताओं को निकालें? (प्रेस y|Y के लिए हाँ, नहीं के लिए कोई अन्य कुंजी):हाँ सफलता। आम तौर पर, रूट को केवल 'लोकलहोस्ट' से कनेक्ट करने की अनुमति दी जानी चाहिए। यह सुनिश्चित करता है कि कोई नेटवर्क से रूट पासवर्ड का अनुमान नहीं लगा सकता है। रूट लॉगिन को दूरस्थ रूप से अस्वीकार करें? (हां के लिए y|Y दबाएं, नहीं के लिए कोई अन्य कुंजी) :yesSuccess। डिफ़ॉल्ट रूप से, MySQL 'test' नामक डेटाबेस के साथ आता है जिसे कोई भी एक्सेस कर सकता है। यह भी केवल परीक्षण के लिए अभिप्रेत है, और उत्पादन वातावरण में जाने से पहले इसे हटा दिया जाना चाहिए। परीक्षण डेटाबेस और उस तक पहुंच को हटा दें? (हाँ के लिए y|Y दबाएं, नहीं के लिए कोई अन्य कुंजी) :... स्किप करना। विशेषाधिकार तालिका को पुनः लोड करने से यह सुनिश्चित हो जाएगा कि अब तक किए गए सभी परिवर्तन तुरंत प्रभावी होंगे। विशेषाधिकार तालिकाएँ अभी पुनः लोड करें? (हां के लिए y|Y दबाएं, नहीं के लिए कोई अन्य कुंजी) :yesSuccess.सब हो गया!

अब MySQL सर्वर को percona1 पर रोकें।

[[email protected] ~]# systemctl stop mysql

अब हम अपनी प्रतिकृति को कॉन्फ़िगर करेंगे, हम my.cnf फ़ाइल में प्रतिकृति जानकारी जोड़ेंगे।

percona1 पर प्रतिकृति सेटिंग कॉन्फ़िगर करें:
बिल्ली>>/etc/my.cnf< 

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

[[email protected] ~]# systemctl start [email protected] प्रतिकृति को कॉन्फ़िगर करने से पहले हमें प्रतिकृति के लिए एक अलग उपयोगकर्ता बनाने की जरूरत है जिसका उपयोग प्रतिकृति प्रक्रिया के लिए किया जाएगा। हमें प्रतिकृति उपयोगकर्ता की आवश्यकता क्यों है? जब आप क्लस्टर में एक नया नोड जोड़ते हैं तो यह वर्तमान नोड कॉन्फ़िगरेशन को डंप कर देता है और इसे दूसरे नोड में स्थानांतरित कर देता है, इसलिए हमें एक अलग उपयोगकर्ता की आवश्यकता होती है।

नोट: सुनिश्चित करें कि उपयोगकर्ता वही होना चाहिए जिसका उल्लेख वेरिएबल “wsrep_sst_auth” में किया गया है my.cnf फ़ाइल में प्रयुक्त प्रतिकृति कॉन्फ़िगरेशन में।

[[email protected] ~]#mysql -u root -p mysql>'perconapasswd' द्वारा पहचाने गए उपयोगकर्ता [email protected]'%' बनाएं;mysql>सभी को *.* पर [email protected] पर अनुदान दें '%';mysql>फ्लश विशेषाधिकार;
Percona2 पर:

percona2 पर प्रतिकृति सेटिंग कॉन्फ़िगर करें:

बिल्ली>>/etc/my.cnf< 

अब mysql शुरू करें और यह इस नोड को क्लस्टर में जोड़ देगा।

[[email protected] ~]# systemctl start mysql
Percona3 पर:

percona3 पर प्रतिकृति सेटिंग कॉन्फ़िगर करें:

बिल्ली>>/etc/my.cnf< 

अब mysql शुरू करें और यह इस नोड को क्लस्टर में जोड़ देगा।

[[email protected] ~]# systemctl start mysql

आप ऐसे संदेशों को mysql लॉग (var/log/mysqld.log)

में देख पाएंगे

(percona2):0.0 से राज्य स्थानांतरण (percona1) पूर्ण

1.0 (percona3):0.0 (percona1) से स्टेट ट्रांसफर पूरा

यह सुनिश्चित करने के लिए कि क्लस्टर प्रारंभ किया गया है, निम्नलिखित चलाएँ:

mysql> 'wsrep%' जैसी स्थिति दिखाएं;+--------------------------------------+- -------------------------------------------------- ----------+| चर_नाम | मूल्य |+------------------------------------------+--------------- -------------------------------------------------- + | wsrep_local_state_uuid | 6d95cd36-1c1a-11ea-999a-83631204f6e3 || wsrep_protocol_version | 9 || wsrep_last_applied | 6 |...| wsrep_flow_control_recv | 0 || wsrep_flow_control_interval | [ 173, 173 ] || wsrep_flow_control_interval_low | 173 || wsrep_flow_control_interval_high | 173 || wsrep_flow_control_status | बंद |...| wsrep_local_state | 4 || wsrep_local_state_comment | समन्वयित || wsrep_cert_index_size | 1 || wsrep_cert_bucket_count | 22 || wsrep_gcache_pool_size | 2384 |...| wsrep_incoming_addresses | 192.168.56.110:3306,192.168.56.114:3306,192.168.56.113:3306 || wsrep_cluster_weight | 3 || wsrep_desync_count | 0 || wsrep_evs_delayed | || wsrep_evs_evict_list | || wsrep_evs_repl_latency | 0/0/0/0/0 || wsrep_evs_state | परिचालन || wsrep_gcomm_uuid | 1d16f574-1c1b-11ea-b5dd-574c9a653584 || wsrep_cluster_conf_id | 3 || wsrep_cluster_size  | 3 || wsrep_cluster_state_uuid | 6d95cd36-1c1a-11ea-999a-83631204f6e3 || wsrep_cluster_status | प्राथमिक || wsrep_connected | चालू || wsrep_local_bf_aborts | 0 || wsrep_local_index | 0 || wsrep_provider_name | गलेरा || wsrep_provider_vendor | कोडरशिप ओए  || wsrep_provider_version | 3.39 (आरबी3295ई6) || wsrep_ready | चालू |+------------------------------------------+----------- -------------------------------------------------- + सेट में 71 पंक्तियाँ (0.00 सेकंड)

जैसा कि आप देख सकते हैं कि क्लस्टर का आकार 3 “wsrep_cluster_size | 3” और आप हमारे तीन नोड्स का आईपी भी देख सकते हैं
wsrep_incoming_addresses | 192.168.56.110:3306,192.168.56.114:3306,192.168.56.113:3306

हमारे क्लस्टर का परीक्षण करें:

मैं percona 1 पर एक डेटाबेस बना रहा हूं और फिर हम percoan 3 पर जांच करेंगे कि इसे दोहराया गया है।

mysql> डेटाबेस दिखाएं;+--------------------------+| डेटाबेस |+----------------------+| info_schema || mysql || प्रदर्शन_स्कीमा || sys |+----------------------+4 पंक्तियाँ सेट में (0.03 सेकंड)mysql> डेटाबेस परकोनेटेस्ट बनाएं;क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.03 सेकंड)

अब percona3 पर जाँच करते हैं हम देखेंगे कि 'perconatest' DB बनाया जाएगा

[[email protected] ~]# mysql -uroot -p -e "डेटाबेस दिखाएं" पासवर्ड दर्ज करें:+--------------------+| डेटाबेस |+----------------------+| info_schema || mysql || परकोनेटेस्ट || प्रदर्शन_स्कीमा || sys |+----------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL/MariaDB तालिकाओं का अनुकूलन कैसे करें

  2. MySQL ड्रॉप अद्वितीय बाधा

  3. उपयोगकर्ता इनपुट पर निर्भर लंबी क्वेरी के लिए मैं PHP में MySQL त्रुटि कैसे प्रदर्शित करूं?

  4. MySQL - कॉलम से पंक्तियाँ

  5. मैं एक फ़ील्ड को दूसरे की तुलना में अधिक 'मूल्यवान' बनाने के लिए MySQL पूर्ण टेक्स्ट खोज प्रासंगिकता में कैसे हेरफेर कर सकता हूं?