चार ट्यूटोरियल में, हम AWS डेटाबेस माइग्रेशन सर्विस (DMS) का उपयोग करके MySQL डेटाबेस को PostgreSQL डेटाबेस में माइग्रेट करने की खोज कर रहे हैं। हमने पहले ट्यूटोरियल में DMS के लिए एक IAM उपयोगकर्ता बनाकर शुरुआत की, "AWS RDS पर MySQL को PostgreSQL में माइग्रेट करना, भाग 1।" इसके बाद, हमने दूसरे ट्यूटोरियल में "MySQL को PostgreSQL में AWS RDS, भाग 2 पर माइग्रेट करना" में AWS रिलेशनल डेटाबेस सर्विस (RDS) पर MySQL और PostgreSQL के उदाहरण बनाने पर चर्चा की। तीसरे ट्यूटोरियल में, "AWS RDS, भाग 3 पर MySQL को PostgreSQL में माइग्रेट करना," हमने एक DMS माइग्रेशन बनाया। इस अंतिम ट्यूटोरियल में, हम माइग्रेशन करने के लिए डीएमएस माइग्रेशन चलाने पर चर्चा करेंगे।
इस ट्यूटोरियल में निम्नलिखित भाग हैं:
- डीएमएस माइग्रेशन टास्क चलाना
- माइग्रेट किए गए डेटाबेस को एक्सप्लोर करना
- क्लाउडवॉच लॉग्स को एक्सप्लोर करना
- DMS के साथ MySQL से PostgreSQL माइग्रेशन में सीमाएं
- निष्कर्ष
DMS माइग्रेशन टास्क चलाना
कार्य बन जाने के बाद, स्थिति हो जाना चाहिए तैयार , जैसा चित्र 1 में दिखाया गया है। प्रारंभ/फिर से शुरू करें . क्लिक करें कार्य शुरू करने के लिए।
चित्र 1: प्रारंभ/फिर से शुरू करें
स्थिति प्रारंभ . बन जानी चाहिए , जैसा कि चित्र 2 में दिखाया गया है।
चित्र 2: कार्य प्रारंभ
जब कार्य ने प्रतिकृति उदाहरण और डेटाबेस समापन बिंदुओं के साथ संबंध स्थापित किया है और लागू किया है, तो तालिका मैपिंग स्थिति चल रही है बन जाती है , जैसा कि चित्र 3 में दिखाया गया है।
चित्र 3: स्थिति चल रही है
माइग्रेशन को कॉन्फ़िगर के रूप में चलाया जाता है और, माइग्रेशन के सफलतापूर्वक पूर्ण होने के बाद, स्थिति लोड पूर्ण becomes हो जाता है , जैसा कि चित्र 4 में दिखाया गया है। टेबल लोड किए गए हैं कॉलम लोड की गई तालिकाओं की संख्या को इंगित करता है।
चित्र 4: स्थिति लोड पूर्ण
माइग्रेट की गई तालिकाओं के लिए, तालिका सांख्यिकी . पर क्लिक करें टैब, जैसा कि चित्र 5 में दिखाया गया है। तालिका सांख्यिकी, जिसमें स्कीमा, तालिका, स्थिति, सम्मिलित करने के #, हटाए गए, अपडेट, DDL, पूर्ण लोड पंक्तियाँ और कुल शामिल हैं, सूचीबद्ध हो जाते हैं।
चित्र 5: तालिका सांख्यिकी
यदि स्रोत डेटाबेस तालिका में तालिकाएँ शामिल नहीं हैं, तो पूर्ण लोड पंक्तियाँ 0 है। यदि किसी स्रोत तालिका में पंक्तियाँ हैं, तो पूर्ण लोड पंक्तियाँ # पंक्तियों को इंगित करती हैं जैसा कि चित्र 6 में कुछ पंक्तियों के लिए दिखाया गया है।
चित्र 6: कुछ तालिकाओं के लिए पूर्ण लोड पंक्तियाँ 0 है, जबकि अन्य तालिकाओं के लिए, लोड की गई पंक्तियों की # है
माइग्रेट किए गए डेटाबेस को एक्सप्लोर करना
MySQL डेटाबेस स्कीमा और टेबल को PostgreSQL में माइग्रेट करने के बाद, PostgreSQL CLI में स्कीमा को dn के साथ सूचीबद्ध करें आज्ञा। माइग्रेट किए गए स्कीमा सूचीबद्ध हो जाते हैं, जैसा कि चित्र 7 में दिखाया गया है। सार्वजनिक स्कीमा माइग्रेशन से पहले से मौजूद थी।
चित्र 7: स्कीमा MySQL से PostgreSQL डेटाबेस में माइग्रेट हो गई
DMS माइग्रेशन तालिका कॉलम प्रकारों को स्वचालित रूप से रूपांतरित करता है। प्राथमिक कुंजी के लिए एक द्वितीयक अनुक्रमणिका जोड़ी जाती है, जो तालिका मानचित्रण में स्वचालित रूप से बनाई जाती है।
तालिका डेटा भी माइग्रेट हो जाता है, जैसा कि mysql.user . के लिए दिखाया गया है चित्र 8 में तालिका।
चित्र 8: तालिका डेटा भी माइग्रेट किया जाता है
एक डेटाबेस प्रकार से दूसरे में माइग्रेट करते समय (विषम माइग्रेशन), डेटा प्रकार मैपिंग स्वचालित रूप से डीएमएस द्वारा की जाती हैं। माइग्रेशन के दौरान एक मध्यवर्ती DMS डेटा प्रकार का उपयोग किया जाता है। MySQL डेटाबेस से PostgreSQL में माइग्रेट करते समय, पहले MySQL डेटा प्रकारों को स्रोत डेटाबेस के रूप में MySQL डेटाबेस के लिए अंतर्निहित मैपिंग का उपयोग करके DMS डेटा प्रकार में माइग्रेट किया जाता है। इसके बाद, DMS डेटा प्रकार को PostgreSQL डेटा प्रकारों में मैप किया जाता है, फिर से PostgreSQL के लिए लक्ष्य डेटाबेस के रूप में अंतर्निहित मैपिंग का उपयोग किया जाता है। RDS पर MySQL डेटाबेस में RDS-संबंधित तालिकाएँ भी PostgreSQL डेटाबेस में माइग्रेट हो जाती हैं, जैसे तालिका "mysql"। "rds_replication_status" चित्र 9 में दिखाया गया है।
चित्र 9: RDS सूचना तालिका के लिए माइग्रेट किया गया डेटा
क्लाउडवॉच लॉग्स को एक्सप्लोर करना
यदि लॉगिंग को कॉन्फ़िगर किया गया है, जैसा कि हमने किया था, तो लॉग की निगरानी लॉग . से की जा सकती है टैब, जैसा कि चित्र 10 में दिखाया गया है। CloudWatch लॉग को सूचीबद्ध करने के लिए कार्य लिंक पर क्लिक करें।
चित्र 10: लॉग्स
CloudWatch लॉग सूचीबद्ध हो जाते हैं (चित्र 11 देखें)।
चित्र 11: CloudWatch लॉग्स
जैसा कि चित्र 12 में CloudWatch लॉग संदेश इंगित करता है, “सभी तालिकाएँ भरी हुई हैं। फुल लोड ओनली टास्क रोक दिया गया है”।
चित्र 12: सभी टेबल लोड हो गए हैं
स्थानांतरित किए गए रिकॉर्ड की संख्या भी सूचीबद्ध है, जैसा कि sys.sys_config . के लिए है चित्र 13 में तालिका।
चित्र 13: डेटाबेस तालिका के लिए लॉग प्रविष्टि में स्थानांतरित किए गए # रिकॉर्ड शामिल हैं
CloudWatch लॉग का उपयोग माइग्रेशन टास्क रन को डीबग करने के लिए किया जा सकता है। त्रुटि संदेश उन तालिकाओं के लिए सूचीबद्ध हैं जो CloudWatch लॉग में सफलतापूर्वक माइग्रेट नहीं हुई हैं।
DMS के साथ MySQL से PostgreSQL माइग्रेशन में सीमाएं
MySQL डेटाबेस से DMS के साथ PostgreSQL डेटाबेस में माइग्रेट करना सीमाओं के बिना नहीं है। DMS सेवा में प्रति AWS उपयोगकर्ता खाते की सीमाएँ हैं। अन्य डीएमएस सीमाएं डेटाबेस के लिए विशिष्ट हो सकती हैं। MySQL के लिए DMS स्रोत डेटा प्रकारों में UTF-8 4 बाइट कैरेक्टर सेट (utf8mb4) शामिल नहीं है। DMS द्वारा समर्थित वर्ण सेट कोड पृष्ठ 1252 Windows लैटिन 1 (ANSI) है और वर्ण सेट में नहीं वर्ण माइग्रेशन के दौरान त्रुटि उत्पन्न कर सकते हैं। MySQL डेटाबेस के लिए DMS स्रोत के रूप में कुछ सीमाएँ मौजूद हैं। PostgreSQL को DMS लक्ष्य डेटाबेस के रूप में उपयोग करने की एकमात्र सीमा यह है कि JSON डेटा प्रकार को मूल CLOB डेटा प्रकार में बदल दिया जाता है।
निष्कर्ष
चार ट्यूटोरियल में, हमने RDS पर MySQL डेटाबेस इंस्टेंस को RDS पर पोस्टग्रेज़ डेटाबेस इंस्टेंस में माइग्रेट करने पर चर्चा की।