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

MySQL और MariaDB माइग्रेशन के लिए शीर्ष ओपन सोर्स टूल्स

MySQL या MariaDB डेटाबेस प्लेटफ़ॉर्म का उपयोग करने वाले बड़े संगठनों को अक्सर एक स्थान से दूसरे स्थान पर डेटाबेस माइग्रेशन करने की आवश्यकता का सामना करना पड़ता है। प्लेटफ़ॉर्म के बावजूद, डेटाबेस सॉफ़्टवेयर का प्रकार (जैसे RDBMS से NoSQL या NoSQL से RDBMS में वापस जाना), या यदि यह केवल एक डेटा माइग्रेशन है, तो माइग्रेशन करना एक बड़ी मात्रा में काम और लागत है।

डेटाबेस माइग्रेशन में हमेशा एक या अधिक स्रोत डेटाबेस से डेटा को एक या अधिक लक्षित डेटाबेस में माइग्रेट करने की प्रक्रिया शामिल होगी। इसमें एक डेटाबेस माइग्रेशन सेवा या उपकरणों का एक मैशअप सेट शामिल हो सकता है जिसे इंजीनियरों ने इस तरह की समस्या के लिए एक सेवा और दर्जी बनाने के लिए बनाया है।

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

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

इस ब्लॉग में हम उन शीर्ष ओपन सोर्स टूल पर ध्यान केंद्रित करने जा रहे हैं जिनका उपयोग आप अधिक समरूप डेटाबेस माइग्रेशन पर MySQL और MariaDB माइग्रेशन के लिए कर सकते हैं।

डेटा माइग्रेशन के लिए बैकअप टूल

माइग्रेशन करते समय उपयोग करने का सबसे आसान तरीका डेटाबेस बैकअप टूल का उपयोग करना है। हम देखेंगे कि ये उपकरण क्या हैं और प्रवास के दौरान आप इनका उपयोग कैसे कर सकते हैं।

mysqldump/mysqlpump

यह टूल MySQL या MariaDB के लिए सबसे प्रसिद्ध उपयोगिताओं में से एक है कि एक डेटाबेस एडमिन या सिस्टम एडमिन इस टूल को एक पूर्ण डेटाबेस या डेटाबेस की आंशिक कॉपी माइग्रेट करने के लिए हुक करेगा। डेटाबेस व्यवस्थापकों के लिए जो MySQL/MariaDB से परिचित नहीं हैं, यह उपकरण आपको बैकअप की एक प्रति बनाने की अनुमति देगा जो डेटा की एक तार्किक प्रति उत्पन्न करेगा जिसे आप लक्ष्य डेटाबेस पर डंप कर सकते हैं।

इस उपकरण का उपयोग करने के साथ एक सामान्य सेटअप है, जब भी कोई लक्ष्य डेटाबेस कहीं और स्थित होता है और स्रोत से भिन्न प्लेटफ़ॉर्म पर होस्ट किया जाता है, तो लक्ष्य एक दास या प्रतिकृति के रूप में कार्य करता है। mysqldump का उपयोग आमतौर पर एक व्यस्त सिस्टम पर --single-transaction के साथ किया जाता है, और --master-data के साथ आपको लक्ष्य डेटाबेस पर एक दास स्थापित करने के लिए निर्देशांक प्रदान करेगा जो डेटा माइग्रेशन के लिए होस्ट के रूप में उपयोग किया जाएगा। Mysqldump का एक विकल्प भी mysqlpump है, लेकिन एक कम सुविधा के साथ, डंप प्रक्रिया को तेज करने के लिए डेटाबेस और डेटाबेस के भीतर वस्तुओं के समानांतर प्रसंस्करण कर सकता है। नकारात्मक पक्ष यह है कि, mysqlpump के साथ, कोई विकल्प नहीं है जिसका आप उपयोग कर सकते हैं जैसे --मास्टर-डेटा जो बहुत उपयोगी है यदि आप एक प्रतिकृति बनाना चाहते हैं जिसका उपयोग डेटाबेस माइग्रेशन के लिए लक्ष्य गंतव्य के रूप में किया जाएगा।

mysqlpump लाभप्रद है यदि आपका डेटा अधिक निष्क्रिय है या रखरखाव मोड में डाल दिया गया है जैसे कि स्रोत डेटाबेस में कोई संसाधित लेखन या परिवर्तन जारी नहीं है। यह mysqldump की तुलना में तेज़ और तेज़ है।

mydumper/myloader 

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

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

mydumper/myloader की भी अपनी सीमाएं हैं। इसे मूल लेखकों के अपडेट से रोक दिया गया है लेकिन मैक्स बूब द्वारा सहेजा गया है, फिर भी टूल का अभी भी व्यापक रूप से उत्पादन वातावरण के लिए उपयोग किया जा रहा है।

Percona XtraBackup/MariaDB बैकअप

Percona's XtraBackup उन डेटाबेस व्यवस्थापकों के लिए एक उपहार है जो  एंटरप्राइज़ Oracle MySQL एंटरप्राइज़ बैकअप के लिए उपयोग और पैसा खर्च नहीं करना चाहते हैं। जबकि मारियाडीबी बैकअप को फोर्क किया गया है और पेरकोना एक्स्ट्राबैकअप से लिया गया है, उनके पास मारियाडीबी एंटरप्राइज बैकअप भी है।

इन दोनों टूल का प्रदर्शन या बैकअप लेते समय समान अवधारणाएं साझा की जाती हैं। यह एक बाइनरी बैकअप है जो एक हॉट ऑनलाइन बैकअप, PITR, वृद्धिशील और पूर्ण बैकअप, आंशिक बैकअप प्रदान करता है, डेटा रिकवरी के लिए भी उपयोगी है क्योंकि यह पुनर्प्राप्ति को समझता है जैसे कि बाइनरी लॉग फ़ाइल और स्थिति उत्पन्न करता है, GTID का समर्थन करता है, और बहुत कुछ। हालाँकि, MariaDB बैकअप और Percona XtraBackup आजकल दो अलग-अलग प्रकार के सॉफ़्टवेयर हैं, क्योंकि वे बैकअप प्रदान करने के लिए केंद्रित डेटाबेस का समर्थन करने के लिए आगे की ओर आर्किटेक्ट किए गए हैं। यदि आप मारियाडीबी डेटाबेस स्रोत से बैकअप लेने या उपयोग करने का इरादा रखते हैं तो मारियाडीबी बैकअप निश्चित रूप से लागू होता है। जबकि, Percona XtraBackup Oracle MySQL और Percona सर्वर या कुछ व्युत्पन्न MySQL सर्वर जैसे Percona XtraDB सर्वर या MySQL के लिए Galera Cluster के कोडरशिप के संस्करण पर भी लागू होता है।

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

इस टूल का उपयोग करते समय डेटा माइग्रेशन का सबसे सामान्य तरीका स्रोत से डेटा की प्रतिलिपि बनाना और फिर डेटा को लक्ष्य गंतव्य पर स्ट्रीम करना है। एक बार लक्ष्य डेटाबेस गंतव्य में, आप केवल --prepare विकल्प के साथ बाइनरी बैकअप तैयार कर सकते हैं जहां यह बैकअप निर्माण के समय रिकॉर्ड किए गए लॉग को लागू करता है ताकि यह पूर्ण डेटा की प्रतिलिपि बना सके और ठीक उसी समय से। जहां से बैकअप लिया गया। फिर लक्ष्य डेटाबेस गंतव्य को मौजूदा स्रोत क्लस्टर की प्रतिकृति या दास के रूप में कार्य करने के लिए एक प्रतिकृति के रूप में सेट करें और उन सभी परिवर्तनों और लेनदेन को दोहराएं जो मुख्य क्लस्टर से हुए हैं।

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

डेटाबेस स्कीमा माइग्रेशन टूल

डेटाबेस माइग्रेशन केवल एक विशिष्ट टूल और एक विशिष्ट कार्य पर ही नहीं बोलता है, तब माइग्रेशन हो सकता है। एक संपूर्ण डेटाबेस माइग्रेशन को पूरा करने के लिए बहुत सारे विचार और अंतर्निहित बाद के कार्य हैं। इनमें से एक स्कीमा माइग्रेशन या डेटाबेस माइग्रेशन है। MySQL/MariaDB में एक स्कीमा डेटा का एक संग्रह है जिसमें इसके कॉलम और पंक्तियों, घटनाओं, ट्रिगर्स, संग्रहीत प्रक्रियाओं या दिनचर्या, और कार्यों के साथ तालिकाओं का एक समूह होता है। ऐसे अवसर होते हैं जब आप केवल एक स्कीमा या केवल एक तालिका को माइग्रेट करना चाहते हैं। मान लें कि किसी स्कीमा पर एक विशिष्ट तालिका को अपनी तालिका संरचना में बदलाव की आवश्यकता होती है और इसके लिए डीडीएल स्टेटमेंट की आवश्यकता होती है। समस्या यह है कि, ALTER TABLE ...ENGINE=InnoDB जैसे सीधे DDL स्टेटमेंट चलाने से आने वाले लेन-देन या कनेक्शन ब्लॉक हो जाते हैं जो लक्ष्य तालिका को भी संदर्भित या उपयोग करेंगे। कुछ विशाल तालिकाओं के लिए जिसमें लंबी डेटा परिभाषा और तालिका की संरचना शामिल होती है, यह अधिक वास्तविक चुनौती जोड़ती है और विशेष रूप से यदि तालिका एक गर्म तालिका है तो यह अधिक जटिल होती है। जबकि डेटाबेस माइग्रेशन में, स्रोत से डाउनटाइम के बिना पूर्ण तालिका की सटीक पूर्ण प्रतिलिपि की प्रतिलिपि बनाना कठिन हो सकता है। तो आइए देखें कि ये क्या हैं।

पीटी-ऑनलाइन-स्कीमा-परिवर्तन

यह प्रसिद्ध Percona टूलकिट का हिस्सा है जो मूल रूप से Maatkit और Aspersa से लिया गया है। तालिका परिभाषा परिवर्तन करते समय यह उपकरण बहुत उपयोगी होता है, विशेष रूप से एक बड़ी मात्रा में डेटा वाली गर्म तालिका के लिए। तालिका परिभाषा परिवर्तन करने के लिए कुछ सामान्य अभी तक अनुभवहीन दृष्टिकोण के लिए, ALTER TABLE चलाना काम कर सकता है। यद्यपि यह मामला पर्याप्त है, ALGORITHM=INPLACE का उपयोग किए बिना तालिका को बदलें एक पूर्ण तालिका प्रतिलिपि का कारण बनता है जो पूर्ण-मेटाडेटा लॉक प्राप्त करता है और इसका मतलब है कि आपका डेटाबेस संभवतः लंबे समय तक ढेर और लॉक हो सकता है, खासकर यदि तालिका है विशाल। उस स्थिति में, यह उपकरण उस समस्या को हल करने के लिए बनाया गया है। यह टूल डेटाबेस माइग्रेशन के लिए इस तरह से बहुत फायदेमंद है कि आपके पहले से सेटअप लक्ष्य डेटाबेस गंतव्य से बहुत बड़े डेटा के साथ एक हॉट टेबल की असंगत प्रति का पता लगाया जा सके। तार्किक या बाइनरी/भौतिक प्रतिलिपि का उपयोग करके बैकअप करने के बजाय, पीटी-ऑनलाइन-स्कीमा-परिवर्तन का उपयोग किया जा सकता है जो स्रोत तालिका से पंक्तियों को अपनी लक्ष्य तालिका खंड-दर-खंड में कॉपी करता है। आप अपनी आवश्यकताओं के आधार पर उचित कॉल के साथ कमांड को इसके मापदंडों के अनुसार अनुकूलित भी कर सकते हैं।

उपयोग करने के अलावा, pt-online-schema-change भी ट्रिगर का उपयोग करता है। ट्रिगर्स का उपयोग करके, कोई भी अनुवर्ती या चालू ट्रैफ़िक जो उस संदर्भ तालिका में परिवर्तन लागू करने का प्रयास करता है, उसे भी लक्ष्य डेटाबेस में कॉपी किया जाएगा जो वर्तमान स्रोत डेटाबेस क्लस्टर की प्रतिकृति के रूप में कार्य करता है। यह सभी डेटा की प्रतिलिपि बनाता है, उदाहरण के लिए, स्रोत डेटाबेस के पास आपके लक्षित डेटाबेस में कौन सा डेटा है, जो एक अलग प्लेटफॉर्म पर पड़ा है। ट्रिगर्स का उपयोग MySQL और MariaDB के लिए उपयोग करने के लिए लागू होता है जब तक कि इसका इंजन InnoDB है और उस टेबल पर प्राथमिक कुंजी उपस्थिति है, जो एक आवश्यकता है। आप जानते होंगे कि InnoDB एक पंक्ति-लॉकिंग तंत्र का उपयोग करता है जो अनुमति देता है कि, कुछ संख्या में (चुनिंदा रिकॉर्ड का एक समूह) के लिए, pt-online-schema-change उसे कॉपी करने का प्रयास करेगा और फिर INSERT कथन को लक्ष्य तालिका पर लागू करेगा। . लक्ष्य तालिका एक डमी तालिका है जो मौजूदा स्रोत तालिका के जल्द से जल्द प्रतिस्थापन की लक्ष्य प्रति के रूप में कार्य करती है। पीटी-ऑनलाइन-स्कीमा-परिवर्तन हालांकि उपयोगकर्ता को या तो डमी टेबल को हटाने की अनुमति देता है या बस डमी टेबल को तब तक रखने देता है जब तक कि व्यवस्थापक उस तालिका को हटाने के लिए तैयार न हो जाए। ध्यान दें कि, किसी तालिका को छोड़ने या हटाने से मेटा-डाटालॉक प्राप्त होता है। चूंकि यह ट्रिगर्स प्राप्त करता है, किसी भी बाद के परिवर्तनों को लक्ष्य तालिका में बिल्कुल कॉपी किया जाएगा और लक्ष्य या डमी तालिका में कोई विसंगति नहीं होगी।

gh-ost

पीटी-ऑनलाइन-स्कीमा-चेंज जैसी ही अवधारणा को साझा करता है। यह टूल पीटी-ऑनलाइन-स्कीमा-चेंज की तुलना में अलग तरीके से काम करता है। मैं कहूंगा, यह स्कीमा टूल माइग्रेशन उन उत्पादन-आधारित बाधाओं तक पहुंचता है जो आपके डेटाबेस को धीमा कर सकते हैं और संभावित रूप से अटक जाते हैं जिससे आपका डेटाबेस क्लस्टर रखरखाव मोड के तहत या अज्ञात अवधि के लिए नीचे गिर जाता है, जब तक कि समस्या न हो। हल किया। यह समस्या आमतौर पर ट्रिगर्स के कारण होती है। यदि आपके पास एक व्यस्त या गर्म तालिका है जो स्कीमा परिवर्तन या तालिका परिभाषा परिवर्तन के दौर से गुजर रही है, तो ट्रिगर आपके डेटाबेस को लॉक विवाद के कारण ढेर कर सकते हैं। MySQL/MariaDB ट्रिगर आपके डेटाबेस को INSERT, UPDATE और DELETE के लिए ट्रिगर्स को परिभाषित करने की अनुमति देते हैं। यदि लक्ष्य तालिका हॉटस्पॉट पर है, तो यह खराब हो सकती है। आपका डेटाबेस तब तक धीमा होना शुरू हो जाता है जब तक कि यह अटक नहीं जाता जब तक कि आप उन आने वाली क्वेरी को मारने में सक्षम नहीं होते हैं या ट्रिगर्स को हटाने के लिए सर्वश्रेष्ठ नहीं होते हैं, लेकिन आदर्श दृष्टिकोण यही नहीं है।

उन मुद्दों के कारण, gh-ost उस समस्या का समाधान करता है। यह कार्य करता है जैसे कि एक बाइनरी लॉग सर्वर है जहां आने वाली घटनाओं या लेनदेन को बाइनरी लॉग प्रारूप में लॉग किया जाता है, विशेष रूप से आरबीआर (पंक्ति आधारित प्रतिकृति) का उपयोग करके। वास्तव में, यह बहुत सुरक्षित है और आपको जिस प्रभाव का सामना करना पड़ता है, उसके संदर्भ में कम चिंताएं हैं। वास्तव में, आपके पास परीक्षण या ड्राई-रन (पीटी-ऑनलाइन-स्कीमा-परिवर्तन के समान) करने का विकल्प भी है, लेकिन इसे सीधे प्रतिकृति या दास नोड में परीक्षण करें। यह एकदम सही है यदि आप इधर-उधर खेलना चाहते हैं और माइग्रेशन के दौरान अपने लक्षित डेटाबेस में सटीक प्रतिलिपि की जांच करना चाहते हैं।

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

अन्य OSC टूल

मैं कह सकता हूं, वे दो उपकरण एक अनुशंसित दृष्टिकोण के अधिक हैं, लेकिन अन्य विकल्प भी आप आजमा सकते हैं। अधिकतर, ये उपकरण MySQL/MariaDB ट्रिगर लागू करते हैं, इसलिए यह किसी भी तरह pt-online-schema-change जैसी ही अवधारणा को साझा करता है। यहाँ निम्नलिखित सूची है:

  • LHM - रेल स्टाइल डेटाबेस माइग्रेशन आपके डेटा स्कीमा को चुस्त तरीके से विकसित करने का एक उपयोगी तरीका है। अधिकांश रेल परियोजनाएँ इस तरह से शुरू होती हैं, और सबसे पहले, परिवर्तन करना तेज़ और आसान होता है।
  • OnlineSchemaChange - Facebook द्वारा बनाया और शुरू किया गया। इस उपकरण का उपयोग गैर-अवरुद्ध तरीके से MySQL तालिकाओं के लिए स्कीमा परिवर्तन करने के लिए किया जाता है
  • TableMigrator - सीरियस बिजनेस और ट्विटर के पूर्व कर्मचारियों द्वारा शुरू किया गया। यह उपकरण MySQL में बड़ी तालिकाओं के शून्य-डाउनटाइम माइग्रेशन के साथ समान सिद्धांत साझा करता है। इसे रेल का उपयोग करके कार्यान्वित किया जाता है, इसलिए यदि आपके पास रूबी-ऑन-रेल अनुप्रयोग वातावरण है तो यह उपयोगी हो सकता है।
  • ओक-ऑनलाइन-ऑल्टर-टेबल - यह श्लोमी नोच द्वारा बनाया गया एक पुराना टूल है, हालांकि यह किसी भी तरह उसी दृष्टिकोण तक पहुंचता है जो पीटी-ऑनलाइन-स्कीमा-चेंज करता है और एक गैर-अवरुद्ध वैकल्पिक तालिका संचालन करता है

डेटाबेस माइग्रेशन विज़ार्ड टूल

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

MySQL कार्यक्षेत्र

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

MySQL कार्यक्षेत्र समुदाय और उद्यम संस्करणों से बना है। फिर भी, सामुदायिक संस्करण जीपीएल के रूप में स्वतंत्र रूप से उपलब्ध है जिसे आप यहां https://github.com/mysql/mysql-workbench पा सकते हैं। जैसा कि प्रलेखन में कहा गया है, MySQL कार्यक्षेत्र आपको Microsoft SQL सर्वर, Microsoft Access, Sybase ASE, SQLite, SQL Anywhere, PostreSQL, और अन्य RDBMS तालिकाओं, वस्तुओं और डेटा से MySQL में माइग्रेट करने की अनुमति देता है। माइग्रेशन MySQL के पुराने संस्करणों से नवीनतम रिलीज़ में माइग्रेट करने का भी समर्थन करता है।

phpMyAdmin

LAMP स्टैक का उपयोग करने वाले वेब डेवलपर्स के रूप में काम करने वालों के लिए, डेटाबेस कार्यों से निपटने के दौरान यह टूल उनके स्विस सेना चाकू में से एक होने के लिए कोई आश्चर्य की बात नहीं है। phpMyAdmin PHP में लिखा गया एक मुफ्त सॉफ्टवेयर टूल है, जिसका उद्देश्य वेब पर MySQL के प्रशासन को संभालना है। phpMyAdmin MySQL और MariaDB पर संचालन की एक विस्तृत श्रृंखला का समर्थन करता है। उपयोगकर्ता इंटरफ़ेस के माध्यम से अक्सर उपयोग किए जाने वाले संचालन (डेटाबेस, टेबल, कॉलम, संबंध, अनुक्रमणिका, उपयोगकर्ता, अनुमतियां, आदि का प्रबंधन) किया जा सकता है, जबकि आपके पास अभी भी किसी भी SQL कथन को सीधे निष्पादित करने की क्षमता है।

हालांकि जब आयात और निर्यात की बात आती है तो यह काफी आसान है, लेकिन महत्वपूर्ण बात यह है कि यह काम पूरा करता है। हालांकि बड़े और अधिक जटिल प्रवास के लिए, यह आपकी वांछित आवश्यकताओं को पूरा करने के लिए पर्याप्त नहीं हो सकता है।

HeidiSQL

HeidiSQL मुफ्त सॉफ्टवेयर है, और इसका उद्देश्य सीखना आसान होना है। "Heidi" आपको डेटाबेस सिस्टम MariaDB, MySQL, Microsoft SQL, PostgreSQL और SQLite में से किसी एक को चलाने वाले कंप्यूटर से डेटा और संरचनाओं को देखने और संपादित करने देता है। 2002 में Ansgar द्वारा आविष्कार किया गया, HeidiSQL दुनिया भर में MariaDB और MySQL के लिए सबसे लोकप्रिय टूल से संबंधित है।

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

पेरकोना टूलकिट एज़ योर स्विस आर्मी नाइफ

परकोना टूलकिट एक उल्लेखनीय सॉफ्टवेयर है जिसे जीपीएल की वारंटी के तहत एक ओपन-सोर्स सॉफ्टवेयर के रूप में वितरित किया जा रहा है। Percona Toolkit उन्नत कमांड-लाइन टूल का एक संग्रह है जो आमतौर पर Percona द्वारा आंतरिक रूप से उपयोग किया जाता है, लेकिन यह विशेष रूप से MySQL/MariaDB सर्वर से संबंधित किसी भी डेटाबेस कार्य के लिए भी लागू होता है।

तो यह कैसे और क्यों विशेष रूप से MySQL/MariaDB माइग्रेशन में डेटा माइग्रेशन के लिए सहायक है? उनके पास यहां कई उपकरण हैं जो प्रवास पर और प्रवास के बाद उपयोग करने के लिए फायदेमंद हैं।

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

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

सारांश

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मारियाडीबी में MAX () फ़ंक्शन

  2. फिक्स:मारियाडीबी . में उपयोगकर्ता 'रूट' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध

  3. मारियाडीबी में डेटाटाइम वैल्यू में सेकेंड जोड़ने के 8 तरीके

  4. SQL और Presto का उपयोग करके बिग डेटा एनालिटिक्स क्वेरी चलाना

  5. उत्पादन के लिए एक MySQL या MariaDB सर्वर तैयार करना - भाग दो