विंडोमैकसॉफ्टवेयरसेटिंग्ससुरक्षाउत्पादकतालिनक्सएंड्रॉइडप्रदर्शनकॉन्फ़िगरेशनएप्पल सभी

डेबियन पर MySQL प्रतिकृति कैसे सेट करें

संपादित 4 दिन पहले द्वारा ExtremeHow संपादकीय टीम

डेबियनमाईएसक्यूएलप्रतिकृतिडेटाबेससर्वर सेटअपएसक्यूएललिनक्सओपन सोर्ससिस्टम प्रशासनसीएलआई

डेबियन पर MySQL प्रतिकृति कैसे सेट करें

अनुवाद अपडेट किया गया 4 दिन पहले

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

1. MySQL प्रतिकृति को समझना

MySQL प्रतिकृति डेटाबेस सर्वरों के बीच असिंक्रोनस रूप से डेटा की प्रतिलिपि बनाने की अनुमति देती है। प्राथमिक सर्वर को मास्टर के रूप में जाना जाता है, और कोई भी द्वितीयक सर्वर जो आवर्तित डेटा प्राप्त करता है, स्लेव कहलाता है। यह आर्किटेक्चर कई परिदृश्यों में लाभकारी है, जैसे कि पढ़ाई-गहन डेटाबेस वातावरण, डेटा बैकअप और रिकवरी प्रक्रियाएँ, डेटा विश्लेषण, और भौगोलिक रूप से वितरित डेटा सेंटर्स।

2. तैयारी

MySQL प्रतिकृति सेट करने से पहले, सुनिश्चित कर लें कि आपके पास निम्नलिखित पूर्वापेक्षाएँ हैं:

3. मास्टर सर्वर सेट करना

हम मास्टर सर्वर को कॉन्फ़िगर करने से शुरू करेंगे, जो मूल डेटा रखेगा और स्लेव सर्वरों को अपडेट भेजेगा।

चरण 1: MySQL मास्टर सर्वर को कॉन्फ़िगर करें

मास्टर सर्वर पर MySQL कॉन्फ़िगरेशन फ़ाइल खोलकर शुरू करें। यह फ़ाइल आमतौर पर /etc/mysql/mysql.conf.d/mysqld.cnf पर स्थित होती है। इसे संपादित करने के लिए nano जैसे टेक्स्ट एडिटर का उपयोग करें:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

कॉन्फ़िगरेशन फ़ाइल में [mysqld] सेक्शन की तलाश करें और निम्न पंक्तियाँ संशोधित करें या जोड़ें:

[mysqld] log-bin = mysql-bin server-id = 1

log-bin निर्देश बाइनरी लॉगिंग सक्षम करता है, जो प्रतिकृति के लिए आवश्यक है क्योंकि यह डेटाबेस में सभी परिवर्तनों को लॉग करता है। server-id को प्रतिकृति सेटअप में भाग लेने वाले प्रत्येक सर्वर के लिए एक अद्वितीय सकारात्मक संख्या होनी चाहिए। इस मामले में, हमने मास्टर के लिए सर्वर आईडी के रूप में 1 का उपयोग किया है।

संपादन के बाद, फ़ाइल को सहेजें और बंद करें। यदि आपने nano का उपयोग किया, तो आप इसे CTRL + X, फिर Y, और फिर ENTER दबाकर कर सकते हैं।

चरण 2: मास्टर सर्वर पर MySQL को पुनरारंभ करें

हमारे द्वारा की गई परिवर्तनों को लागू करने के लिए, MySQL सेवा को पुनरारंभ करें:

sudo systemctl restart mysql

चरण 3: एक प्रतिकृति उपयोगकर्ता बनाएं

अगला कदम, मास्टर सर्वर पर MySQL कमांड लाइन में लॉग इन करना है ताकि एक उपयोगकर्ता खाता बनाया जा सके जिसे स्लेव सर्वर प्रतिकृति के लिए कनेक्ट करने के लिए उपयोग कर सके। निम्नलिखित कमांड का उपयोग करें:

mysql -u root -p

लॉग इन करने के बाद, निम्नलिखित SQL कमांड्स को निष्पादित करें ताकि एक प्रतिकृति उपयोगकर्ता बनाया जा सके और उसे विशेषाधिकार प्रदान किया जा सके। 'replica_user' और 'password' को अपनी पसंद के उपयोगकर्ता नाम और पासवर्ड से बदलें:

CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%'; FLUSH PRIVILEGES;

ये कमांड एक नया MySQL उपयोगकर्ता बनाते हैं जिसे प्रतिकृति के विशेषाधिकार प्राप्त होते हैं। '%' का उपयोग करते हुए होस्ट के रूप में स्वीकृति देता है कि स्लेव किसी भी आईपी पते से कनेक्ट हो सके।

चरण 4: मास्टर स्थिति प्राप्त करें

स्लेव को कॉन्फ़िगर करने से पहले, आपको वर्तमान मास्टर लॉग फ़ाइल और स्थिति को रिकॉर्ड करना होगा। यह जानकारी प्राप्त करने के लिए निम्न कमांड का उपयोग करें:

SHOW MASTER STATUS;

जब स्लेव सर्वर सेटअप करते समय File और Position मानों को नोट करें। आउटपुट कुछ इस तरह हो सकता है:

+------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 123 | | | +------------------+----------+--------------+------------------+

4. स्लेव सर्वर सेट करना

मास्टर सर्वर को कॉन्फ़िगर करने के बाद, अगला कदम स्लेव सर्वरों को सेट करना है।

चरण 1: MySQL स्लेव सर्वर को कॉन्फ़िगर करें

मास्टर कॉन्फ़िगरेशन की तरह ही, प्रत्येक स्लेव सर्वर पर MySQL कॉन्फ़िगरेशन खोलें और /etc/mysql/mysql.conf.d/mysqld.cnf को संपादित करें:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

सुनिश्चित करें कि [mysqld] सेक्शन में निम्नलिखित सेटिंग्स हैं:

[mysqld] server-id = 2 relay-log = mysql-relay-bin

server-id को प्रतिकृति सेटअप में किसी अन्य सर्वर से अलग और अद्वितीय होना चाहिए। यहां, हमने 2 का उपयोग किया है, relay-log कॉन्फ़िगरेशन मास्टर सर्वर से प्रतिकृति स्ट्रीम की प्रोसेसिंग को सुविधाजनक बनाती है।

संपादन के बाद, पहले की तरह कॉन्फ़िगरेशन फ़ाइल को सहेजें और बंद करें।

चरण 2: स्लेव सर्वर पर MySQL को पुनरारंभ करें

परिवर्तनों को लागू करने के लिए स्लेव पर MySQL सर्वर को पुनरारंभ करें:

sudo systemctl restart mysql

चरण 3: स्लेव को मास्टर से कनेक्ट करने के लिए सेट करें

स्लेव सर्वर पर MySQL कमांड लाइन क्लाइंट में लॉग इन करें:

mysql -u root -p

लॉग इन करने के बाद, CHANGE MASTER TO कमांड का उपयोग करके स्लेव को मास्टर से जोड़ दें। 'master_host', 'replica_user', 'password', 'mysql-bin.X', और position_number को मास्टर सर्वर आईपी पता, प्रतिकृति उपयोगकर्ता नाम, पासवर्ड, लॉग फ़ाइल, और पहले प्राप्त स्थिति के साथ बदलें:

CHANGE MASTER TO MASTER_HOST = 'master_host', MASTER_USER = 'replica_user', MASTER_PASSWORD = 'password', MASTER_LOG_FILE = 'mysql-bin.X', MASTER_LOG_POS = position_number;

मास्टर जानकारी को कॉन्फ़िगर करने के बाद, निम्नलिखित कमांड के साथ स्लेव प्रोसेस शुरू करें:

START SLAVE;

चरण 4: स्लेव की स्थिति सत्यापित करें

जांचें कि क्या स्लेव सर्वर सही ढंग से सेटअप है और मास्टर से कनेक्टेड है, इसे निष्पादित करें:

SHOW SLAVE STATUS\G;

आउटपुट में Slave_IO_Running और Slave_SQL_Running फील्ड्स को देखें। दोनों को यह संकेत देने के लिए Yes दिखाना चाहिए कि स्लेव सही ढंग से काम कर रहा है। आपको Relay_Master_Log_File और Exec_Master_Log_Pos मानों को भी देखना चाहिए, जो प्रतिकृतिकरण प्रगति की पुष्टि करते हैं।

5. प्रतिकृति सेटअप का परीक्षण

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

चरण 1: डेटा समन्वयन का परीक्षण

प्रतिकृति का परीक्षण करने के लिए, मास्टर सर्वर पर एक सरल डेटा प्रविष्टि डालने का प्रयास करें और देखें कि क्या यह स्लेव पर दिखाई देती है।

मास्टर सर्वर पर, MySQL में लॉगिन करें और एक सरल डेटाबेस और तालिका बनाएं:

mysql -u root -p
CREATE DATABASE testdb; USE testdb; CREATE TABLE testtable (id INT PRIMARY KEY AUTO_INCREMENT, value VARCHAR(255)); INSERT INTO testtable (value) VALUES ('Replication Test');

चरण 2: स्लेव सर्वर पर डेटा सत्यापित करें

स्लेव सर्वर पर MySQL कमांड लाइन में लॉग इन करें और देखें कि डेटा प्रतिलिपित हो गया है या नहीं:

mysql -u root -p
USE testdb; SELECT * FROM testtable;

आपको मास्टर तालिका पर डाला गया पंक्ति अब स्लेव तालिका में दिखाई देनी चाहिए। अगर प्रतिकृति सही ढंग से काम कर रही है, तो आप निम्नलिखित देखेंग:

+----+------------------+ | id | value | +----+------------------+ | 1 | Replication Test | +----+------------------+

6. सामान्य समस्या निवारण सुझाव

अगर समस्याएँ सेटअप के दौरान या बाद में उत्पन्न होती हैं, तो यहाँ कुछ सामान्य समस्या निवारण चरण दिए गए हैं जिन्हें आप विचार कर सकते हैं:

निष्कर्ष

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

ध्यान रखें कि आपके MySQL सर्वर की नियमित रूप से निगरानी करना और आपके सिस्टम सुचारु रूप और कुशलता से चलाने के लिए आपकी प्रतिलिपि डाटा की लगातार जाँच करना हमेशा एक अच्छा विचार है।

यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं


टिप्पणियाँ