MySQL मास्टर-स्लेव प्रतिकृति एक ऐसी प्रक्रिया है जो एक नेटवर्क में एक या अधिक नोड्स में डेटाबेस फ़ाइलों को दोहराने या कॉपी करने की अनुमति देती है। यह सेटअप अतिरेक और दोष सहनशीलता प्रदान करता है जैसे कि मास्टर नोड में विफलता की स्थिति में , डेटाबेस अभी भी दास नोड . में पुनर्प्राप्त किए जा सकते हैं . यह उपयोगकर्ताओं को मन की शांति देता है कि किसी भी घटना में सभी खो नहीं जाएंगे क्योंकि डेटाबेस की प्रतिकृति अभी भी एक अलग सर्वर से पुनर्प्राप्त की जा सकती है।
इस गाइड में, आप सीखेंगे कि MySQL कैसे करें डेटाबेस मास्टर-दास एक उबंटू 18.04 . पर प्रतिकृति प्रणाली।
आवश्यकताएं
सेटअप में, हमारे पास दो सर्वर चलने वाले हैं उबंटू 18.04 निम्नलिखित आईपी पते के साथ।
Master server: 10.128.0.28 Slave server: 10.128.0.29
आइए अब इसमें गोता लगाएँ और देखें कि हम मास्टर-दास . को कैसे कॉन्फ़िगर कर सकते हैं उबंटू . पर प्रतिकृति सेटअप ।
चरण 1:मास्टर और स्लेव नोड्स पर MySQL स्थापित करें
उबंटू रिपॉजिटरी में संस्करण है 5.7 MySQL . का . किसी भी नई सुविधाओं का लाभ उठाने और संभावित समस्याओं से बचने के लिए, आपको नवीनतम MySQL संस्करण स्थापित करना चाहिए। लेकिन पहले, निम्नलिखित उपयुक्त कमांड का उपयोग करके दो नोड्स को अपडेट करें।
$ sudo apt update
MySQL स्थापित करने के लिए दोनों नोड्स पर, कमांड निष्पादित करें।
$ sudo apt install mysql-server mysql-client
इसके बाद, mysql खोलें कॉन्फ़िगरेशन फ़ाइल।
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
मास्टर नोड . पर , स्क्रॉल करें और bind-address
का पता लगाएं विशेषता जैसा कि नीचे दिखाया गया है।
bind-address =127.0.0.1
मास्टर नोड . के IP पते से मिलान करने के लिए लूपबैक पता बदलें ।
bind-address =10.128.0.28
इसके बाद, server-id
. के लिए एक मान निर्दिष्ट करें [mysqld]
. में विशेषता खंड। आपके द्वारा चुना गया नंबर किसी अन्य सर्वर-आईडी नंबर से मेल नहीं खाना चाहिए। आइए मान निर्दिष्ट करें 1
।
server-id =1
कॉन्फ़िगरेशन फ़ाइल के बिल्कुल अंत में, नीचे दी गई पंक्तियों को कॉपी और पेस्ट करें।
log_bin = /var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index
कॉन्फ़िगरेशन फ़ाइल से बाहर निकलें और मास्टर नोड पर परिवर्तनों को प्रभावी करने के लिए MySQL सेवा को पुनरारंभ करें।
$ sudo systemctl restart mysql
यह सत्यापित करने के लिए कि MySQL सर्वर अपेक्षित रूप से चल रहा है, आदेश जारी करें।
$ sudo systemctl status mysql
पूरी तरह से ठीक! MySQL सर्वर अपेक्षानुसार चल रहा है!
चरण 2:मास्टर नोड पर प्रतिकृति के लिए एक नया उपयोगकर्ता बनाएं
इस खंड में, हम मास्टर नोड . में एक प्रतिकृति उपयोगकर्ता बनाने जा रहे हैं . इसे प्राप्त करने के लिए, MySQL सर्वर में लॉग इन करें जैसा कि दिखाया गया है।
$ sudo mysql -u root -p
अगला, एक प्रतिकृति उपयोगकर्ता बनाने के लिए आगे बढ़ें और नीचे दिए गए प्रश्नों को निष्पादित करें और प्रतिकृति दास तक पहुंच प्रदान करें। अपने आईपी पते का उपयोग करना याद रखें।
mysql> CREATE USER 'replication_user'@'10.128.0.29' IDENTIFIED BY 'replica_password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'replication_user '@'10.128.0.29';
इसके बाद, निम्न कमांड चलाएँ।
mysql> SHOW MASTER STATUS\G
आउटपुट वैसा ही होना चाहिए जैसा आप नीचे देख सकते हैं।
उत्सुक रहें और mysql-bin.000002
. पर ध्यान दें मान और स्थिति आईडी 1643
. दास सर्वर . की स्थापना करते समय ये मान महत्वपूर्ण होंगे ।
चरण 3:MySQL स्लेव सर्वर को कॉन्फ़िगर करें
स्लेव सर्वर पर जाएं और जैसा हमने मास्टर सर्वर . के साथ किया था , MySQL कॉन्फ़िगरेशन फ़ाइल खोलें।
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
बिल्कुल मास्टर सर्वर . की तरह , निम्नलिखित पंक्तियों को संपादित करने के लिए आगे बढ़ें।
bind-address = 10.128.0.29
पहले की तरह, server-id
. के लिए एक मान निर्दिष्ट करें [mysqld]
. में विशेषता खंड। इस बार कोई भिन्न मान चुनें. चलिए 2
. के साथ चलते हैं ।
server-id =2
फिर से, नीचे दी गई पंक्तियों को कॉन्फ़िगरेशन फ़ाइल के बिल्कुल अंत में चिपकाएँ।
log_bin = /var/log/mysql/mysql-bin.log log_bin_index =/var/log/mysql/mysql-bin.log.index relay_log = /var/log/mysql/mysql-relay-bin relay_log_index = /var/log/mysql/mysql-relay-bin.index
अगला स्लेव नोड पर MySQL सर्वर को पुनरारंभ करें।
$ sudo systemctl restart mysql
एक बार हो जाने के बाद, टेक्स्ट एडिटर को सेव करें और बाहर निकलें
इसके बाद, MySQL शेल में लॉग इन करें जैसा कि दिखाया गया है।
$ sudo mysql -u root -p
इस चरण में, आपको कुछ कॉन्फ़िगरेशन करने की आवश्यकता होगी जो दास सर्वर . को अनुमति देगा मास्टर सर्वर . से कनेक्ट करने के लिए . लेकिन पहले, दिखाए गए अनुसार स्लेव थ्रेड्स को रोकें।
mysql> STOP SLAVE;
दास सर्वर को अनुमति देने के लिए मास्टर सर्वर को दोहराने के लिए , कमांड चलाएँ।
mysql> CHANGE MASTER TO MASTER_HOST ='10.128.0.28', MASTER_USER ='replication_user', MASTER_PASSWORD ='[email protected]', MASTER_LOG_FILE = 'mysql-bin.000002', MASTER_LOG_POS = 1643;
यदि आप पर्याप्त उत्सुक हैं, तो आप देखेंगे कि हमने mysql-bin.00002
का उपयोग किया है मान और स्थिति आईडी 1643
पहले दास प्रतिकृति उपयोगकर्ता बनाने के बाद प्रदर्शित किया गया था।
इसके अतिरिक्त, मास्टर सर्वर के आईपी पते, प्रतिकृति उपयोगकर्ता और पासवर्ड का उपयोग किया गया है।
बाद में, उस थ्रेड को शुरू करें जिसे आपने पहले रोका था।
mysql> START SLAVE;
चरण 4:MySQL मास्टर-स्लेव प्रतिकृति सत्यापित करें
यह जांचने के लिए कि क्या सेटअप वास्तव में अपेक्षित रूप से काम कर रहा है, हम मास्टर पर एक नया डेटाबेस बनाने जा रहे हैं और यह देखने के लिए जांच करेंगे कि क्या इसे MySQL स्लेव सर्वर पर दोहराया गया है।
मास्टर सर्वर में MySQL में लॉग इन करें ।
$ sudo mysql -u root -p
आइए एक परीक्षण डेटाबेस बनाएं। इस मामले में, हम replication_db . नामक एक डेटाबेस तैयार करेंगे ।
mysql> CREATE DATABASE replication_db;
अब, दास सर्वर . में अपने MySQL उदाहरण में लॉग इन करें ।
$ sudo mysql -u root -p
अब क्वेरी का उपयोग करके डेटाबेस को सूचीबद्ध करें।
mysql> SHOW DATABASES;
आप अपने द्वारा बनाए गए डेटाबेस को मास्टर . पर देखेंगे दास . पर दोहराया गया है . विस्मयकारी ! आपका MySQL मास्टर-दास प्रतिकृति अपेक्षा के अनुरूप काम कर रहा है! अब आप निश्चिंत हो सकते हैं कि किसी भी विफलता की स्थिति में, डेटाबेस फ़ाइलों की प्रतियां स्लेव सर्वर पर दोहराई जाएंगी।
निष्कर्ष
इस गाइड में, आपने सीखा कि कैसे एक MySQL मास्टर-स्लेव सेट किया जाए प्रतिकृति सेटअप उबंटू 18.04 . पर ।