यहां तक कि जब कुछ आईटी लोग "डेटाबेस प्रतिकृति . वाक्यांश सुनते हैं ", वे अक्सर इसे हार्डवेयर विफलता या डेटा भ्रष्टाचार की स्थिति में डेटा हानि से बचने के लिए एक ही जानकारी की कई प्रतियों की आवश्यकता के साथ जोड़ते हैं। हालांकि यह कुछ हद तक सच है, डेटाबेस और डेटा उपलब्धता का बैकअप लेने की सामान्य अवधारणा की तुलना में डेटाबेस प्रतिकृति के लिए बहुत कुछ है।
मास्टर-स्लेव सेटअप में डेटाबेस प्रतिकृति के अन्य लाभों में हम उल्लेख कर सकते हैं:
- मास्टर में लेखन कार्यों को प्रभावित किए बिना (और इससे प्रभावित हुए) स्लेव सर्वर पर बैकअप किया जा सकता है।
- मास्टर के प्रदर्शन को प्रभावित किए बिना संसाधन-गहन संचालन (जैसे डेटा विश्लेषण) दास पर किया जा सकता है।
इस लेख में हम बताएंगे कि MariaDB 10.1 . में मास्टर-स्लेव प्रतिकृति कैसे सेट करें . क्लासिक प्रतिकृति के विपरीत, मारियाडीबी ने वैश्विक लेनदेन आईडी . की अवधारणा पेश की (GTIDs ) v10.0 . में , जो एक गुलाम को आसानी से एक अलग मास्टर से जुड़ने और दोहराने के लिए बदलने की अनुमति देता है। उसके ऊपर, दास की स्थिति को क्रैश-सुरक्षित तरीके से दर्ज किया जाता है (राज्य के अपडेट डेटा के अपडेट के समान लेनदेन में किए जाते हैं)।
अगर आप MySQL की तलाश कर रहे हैं CentOS/RHEL 6 . के तहत प्रतिकृति , इस गाइड का पालन करें CentOS/RHEL 6
पर MySQL (मास्टर-स्लेव) प्रतिकृति सेटअप करेंCentOS/RHEL 7 और डेबियन 8/9 में MariaDB 10.1 इंस्टॉल करना
हमारे परीक्षण परिवेश में निम्नलिखित मशीनें शामिल हैं (दोनों CentOS 7 . हैं) ):
मास्टर:192.168.0.18दास:192.168.0.19
मारियाडीबी के नवीनतम संस्करण को स्थापित करने के लिए, हमें उनके रिपॉजिटरी को अपने सर्वर में जोड़ना होगा। यदि आप मारियाडीबी जैसे 5.5 के पुराने संस्करण का उपयोग कर रहे हैं, तो नीचे दिए गए लेख का उपयोग करके नवीनतम 10.1 संस्करण में अपग्रेड करने पर विचार करें।
- मारियाडीबी 5.5 को मारियाडीबी 10.1 में अपग्रेड करें
CentOS/RHEL में
MariaDB.repo
. नाम की एक फाइल बनाएं अंदर /etc/yum.repos.d दोनों मास्टर . पर निम्नलिखित सामग्री के साथ और गुलाम सिस्टम:
# मारियाडीबी 10.1 सेंटोस रिपोजिटरी सूची - 2016-01-23 14:16 यूटीसी बनाई गई# http://mariadb.org/mariadb/repositories/[mariadb]name =MariaDBbaseurl =http://yum.mariadb.org/ 10.1/centos7-amd64gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDBgpgcheck=1
फ़ाइल को सहेजें और yum का उपयोग करके दोनों सर्वरों पर MariaDB स्थापित करें:
# यम अपडेट &&यम मारियाडीबी-सर्वर मारियाडीबी-क्लाइंट स्थापित करें
डेबियन/उबंटू में
पैकेज और मारियाडीबी रिपॉजिटरी को प्रमाणित करने के लिए कुंजी जोड़ें:
# apt-get install software-properties-common# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db# add-apt-repository 'deb [arch=amd64,i386] http:/ /mirror.edatel.net.co/mariadb/repo/10.1/डेबियन जेसी मुख्य'
नोट :वितरण बदलें नाम और कोडनाम ऊपर हाइलाइट की गई लाइन में।
उपयुक्त-प्राप्त . का उपयोग करके इंस्टॉल करें आदेश:
# apt-get update# apt-get install mariadb-server
एक बार जब आप मारियाडीबी स्थापित कर लेते हैं, तो mysql_secure_installation
चलाएं मास्टर और स्लेव दोनों पर प्रक्रिया, आइए मास्टर मशीन में एक नमूना परीक्षण डेटाबेस सेट करें।
मास्टर पर एक नमूना MySQL डेटाबेस सेट करना
अब हम मास्टर सर्वर में Employees
सेट करेंगे डेटाबेस से https://github.com/datacharmer/test_db (जो 4 . का डेटासेट प्रदान करता है छह टेबल में फैले मिलियन रिकॉर्ड) दो आसान चरणों में:
रिपॉजिटरी को क्लोन करें और नमूना डेटाबेस को अपने मारियाडीबी इंस्टॉलेशन में आयात करने के लिए इसका इस्तेमाल करें:
# git क्लोन https://github.com/datacharmer/test_db# cd test_db# mysqlमास्टर पर MySQL सर्वर को कॉन्फ़िगर करना
मास्टर को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें:
चरण 1:
/etc/my.cnf
संपादित करें फ़ाइल।[mysqld]
. के तहत अनुभाग में, निम्नलिखित चार पंक्तियाँ जोड़ें:log-binserver_id=1replicate-do-db=employeesbind-address=192.168.0.18और मारियाडीबी को पुनः आरंभ करें:
# systemctl फिर से शुरू mariadbचरण 2: मारियाडीबी सर्वर पर रूट के रूप में लॉग ऑन करें, यूजर स्लेव बनाएं और आवश्यक अनुदान प्रदान करें:
MariaDB [(none)]> 'SlavePassword' द्वारा पहचाना गया उपयोगकर्ता 'स्लेव'@'लोकलहोस्ट' बनाएं;MariaDB [(none)]> *.* पर ग्रांट प्रतिकृति दास अनुदान विकल्प के साथ 'स्लेवपासवर्ड' द्वारा पहचाने जाने वाले दास के लिए;MariaDB [(none)]> फ्लश विशेषाधिकार;MariaDB [(none)]> रीड लॉक के साथ फ्लश टेबल;MariaDB [(none)]> मास्टर स्थिति दिखाएं;आखिरी आदेश (मास्टर स्थिति दिखाएं ) बाइनरी लॉग में वर्तमान स्थिति लौटाता है (सटीक निर्देशांक जो इंगित करते हैं कि दास को किस बिंदु से प्रतिकृति शुरू करनी चाहिए:
चरण 3: मारियाडीबी प्रांप्ट से बाहर निकलें (
exit;
) और कर्मचारी डेटाबेस का स्नैपशॉट लेने के लिए निम्न कमांड का उपयोग करें। जब आप दर्ज करें . दबाते हैं , आपकोmysql_secure_installation
के माध्यम से आपके द्वारा पहले सेट किए गए रूट के लिए पासवर्ड टाइप करने के लिए प्रेरित किया जाएगा :# mysqldump -u root -p कर्मचारी> कर्मचारी-dump.sqlडंप पूरा होने के बाद, टेबल को अनलॉक करने के लिए फिर से डेटाबेस सर्वर से कनेक्ट करें और फिर बाहर निकलें:
MariaDB [(none)]> अनलॉक टेबल;MariaDB [(none)]> बाहर निकलें;चरण 4: डंप को स्लेव में कॉपी करें:
# scp Employees-dump.sql [email protected]:/root/चरण 5:
mysql_upgrade
चलाएं सिस्टम टेबल को अपग्रेड करने की प्रक्रिया (आपको मारियाडीबी रूट पासवर्ड दर्ज करने के लिए कहा जाएगा):# mysql_upgrad -u root -pचरण 6: फ़ायरवॉल के माध्यम से डेटाबेस सेवा की अनुमति दें:
# फ़ायरवॉल-cmd --add-service=mysql# फ़ायरवॉल-cmd --add-service=mysql --permanent# फ़ायरवॉल-cmd --reloadअब दास को कॉन्फ़िगर करते हैं।
दास पर MySQL सर्वर को कॉन्फ़िगर करना
दास को कॉन्फ़िगर करने के लिए, इन चरणों का पालन करें:
चरण 1: प्रतिकृति कार्यों को करने के लिए खाता बनाएँ। इसके साथ स्थानीय मारियाडीबी सर्वर से कनेक्ट करें:
# mysql -u root -pऔर वह पासवर्ड दर्ज करें जिसे आपने पहले सेट किया था।
चरण 2: एक बार डेटाबेस सर्वर से कनेक्ट होने के बाद, उपयोगकर्ता और एक खाली डेटाबेस बनाएँ, और अनुमतियाँ प्रदान करें:
MariaDB [(none)]> डेटाबेस कर्मचारी बनाएं;MariaDB [(none)]> कर्मचारियों पर सभी विशेषाधिकार प्रदान करें। * अनुदान विकल्प के साथ 'दास' @ 'लोकलहोस्ट' के लिए;MariaDB [(none)]> फ्लश विशेषाधिकार;चरण 3: मारियाडीबी प्रॉम्प्ट से बाहर निकलें और मास्टर सर्वर में बनाए गए डंप को लोड करें:
# mysql -u root -p कर्मचारी <कर्मचारी-dump.sqlचरण 4:
/etc/my.cnf
संपादित करें सर्वर असाइन करने के लिए फ़ाइल ID[mysqld]
. के तहत दास को खंड। ध्यान दें कि यह 1 . से भिन्न पूर्णांक होना चाहिए , जैसा कि हमने 1 . का उपयोग किया था मास्टर में:server_id=2replicate-do-db=कर्मचारीडेटाबेस सर्वर को पुनरारंभ करें:
# systemctl फिर से शुरू mariadbचरण 5:
mysql_upgrade
चलाएं सिस्टम टेबल को अपग्रेड करने की प्रक्रिया (आपको मारियाडीबी रूट पासवर्ड दर्ज करने के लिए कहा जाएगा):# mysql_upgrad -u root -pचरण 6: एक बार जब डंप को दास में आयात कर लिया जाता है, तो हम प्रतिकृति शुरू करने के लिए केवल कुछ ही कदम उठाते हैं। डेटाबेस में लॉग ऑन करें और MariaDB प्रॉम्प्ट में निम्न कमांड चलाएँ।
MASTER_LOG_FILE
. पर विशेष ध्यान दें औरMASTER_LOG_POS
चर, जो मास्टर स्थिति दिखाएं . द्वारा दिए गए मानों से मेल खाना चाहिए ऊपर "मास्टर को कॉन्फ़िगर करना" के चरण 2 में।MariaDB [(none)]> मास्टर को MASTER_HOST='192.168.0.18', MASTER_USER='दास', MASTER_PASSWORD='SlavePassword', MASTER_PORT=3306, MASTER_LOG_FILE='मास्टर-बिन.000001', MASTER_LOG_POS=current_USE; /पूर्व>चरण 7: मारियाडीबी प्रॉम्प्ट से बाहर निकले बिना गुलाम को शुरू करें और उसकी स्थिति की जांच करें:
MariaDB [(none)]> START SLAVE;MariaDB [(none)]> गुलाम स्थिति दिखाएं\G;ऐसा नहीं है कि आपको अभी इसकी आवश्यकता है, लेकिन ध्यान दें कि आप दास को इसके साथ रोक सकते हैं:
MariaDB [(none)]> बंद करो गुलाम;अगर
SHOW SLAVE STATUS\G;
आदेश किसी भी त्रुटि देता है। समस्या निवारण के लिए उन त्रुटियों का उपयोग करें और फिरSTART SLAVE;
run चलाएं फिर से परीक्षण करने के लिए।MySQL/MariaDB डेटाबेस प्रतिकृति का परीक्षण करें
आइए कर्मचारियों . में एक रिकॉर्ड जोड़ें मास्टर सर्वर में तालिका:
MariaDB [(none)]> INSERT INTO कर्मचारी (emp_no, जन्म_तिथि, first_name, last_name, लिंग, किराया_तिथि) VALUES (500000, '1983-07-12', 'Dave', 'null', 'M', '2014-12-12');फिर सत्यापित करें कि यह परिवर्तन दास में दोहराया गया था:
MariaDB [(none)]> कर्मचारियों का उपयोग करें;MariaDB [(none)]> चुनें * कर्मचारियों से जहां emp_no=500000;जैसा कि आप देख सकते हैं, प्रतिकृति मास्टर से दास तक सही ढंग से काम कर रही है।
सारांश
इस लेख में हमने बताया है कि CentOS/RHEL 7 में MariaDB के नवीनतम संस्करण को कैसे स्थापित किया जाए। और डेबियन 8/9, और चर्चा की कि जीटीआईडी के साथ मास्टर-स्लेव प्रतिकृति कैसे स्थापित करें। अधिक जानकारी के लिए, आप मारियाडीबी प्रतिकृति गाइड का संदर्भ लेना चाह सकते हैं, और यदि आपके कोई प्रश्न या टिप्पणियां हैं तो नीचे दिए गए फॉर्म का उपयोग करके हमसे संपर्क करने में संकोच न करें।