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

MySQL के लिए सर्वश्रेष्ठ DBaaS समाधान

सबसे लोकप्रिय ओपन सोर्स डेटाबेस के रूप में, MySQL को छोटे स्टार्टअप से लेकर बहुत बड़े संगठनों तक कई जगहों पर लागू किया गया है। 99.999% अपटाइम आवश्यकताओं के साथ उपयोग के मामले साधारण वेबसाइट एप्लिकेशन से मिशन महत्वपूर्ण वातावरण में भिन्न होते हैं। MySQL बस काम पूरा करता है, और इसके साथ काम करना आसान है।

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

MySQL को एक सेवा के रूप में पेश करने वाले तीन क्लाउड प्रदाताओं में शामिल हैं:

  • MySQL के लिए RDS के साथ Amazon वेब सेवा
  • MySQL के लिए CloudSQL के साथ Google कंप्यूट इंजन
  • Microsoft Azure, Microsoft Azure MySQL

इस ब्लॉग में, हम इन क्लाउड प्रदाताओं के समाधानों की तुलना करेंगे।

MySQL संस्करण और पैच

MySQL का नवीनतम संस्करण जो Amazon Web Services (AWS) में उपलब्ध है, MySQL 8.0.20 है, जो आधिकारिक Oracle MySQL के नवीनतम संस्करण के काफी करीब है (उस समय 8.0.21) लिखना)। नवीनतम संस्करण के अलावा, AWS RDS MySQL का पुराना संस्करण भी प्रदान करता है (प्रमुख संस्करण 5.5, 5.6, और 5.7), ताकि आप सटीक संस्करण को परिनियोजित कर सकें जो आपके एप्लिकेशन के अनुकूल हो।

Google क्लाउड प्लेटफ़ॉर्म (GCP) में, MySQL के लिए CloudSQL में समर्थित MySQL संस्करण अभी भी MySQL 5.6 और 5.7 है, रिलीज़ 5.6 का नवीनतम लघु संस्करण 5.6.42 है जबकि संस्करण 5.7 के लिए, नवीनतम संस्करण लघु संस्करण 5.7.25 है।

MySQL के लिए Azure डेटाबेस संस्करण 5.6, 5.7, 8.0 का समर्थन करता है, दुर्भाग्य से वे कंसोल से परिनियोजित करते समय मामूली संस्करण (या डेटाबेस का बग फिक्स संस्करण, जैसा कि Azure इसे कहते हैं) प्रदान नहीं करते हैं। आपके MySQL सर्वर इंस्टेंस के संस्करण को निर्धारित करने के लिए, कोई SELECT VERSION() का उपयोग कर सकता है; MySQL प्रॉम्प्ट पर कमांड करें।

ज्ञात मुद्दे और सीमाएं

कुछ ज्ञात मुद्दे और प्रतिबंध हैं जो डेटाबेस पर एक सेवा के रूप में मौजूद हैं, जबकि यह MySQL या VM में नहीं होता है। आरडीएस पर, कुछ सीमाएं हैं:

  • MySQL कीरिंग प्लगइन समर्थित नहीं है।
  • InnoDB संग्रहण इंजन का उपयोग करते समय किसी तालिका के लिए अधिकतम संग्रहण सीमा आकार 16TB है।
  • आरडीएस का उपयोग करते समय कुछ पैरामीटर हैं जिन पर विशेष ध्यान देने की आवश्यकता होती है, जैसे:long_query_time, lower_case_table_name।

MySQL के लिए CloudSQL में कुछ सीमाएं और समस्याएं ज्ञात हैं, जिन्हें विभिन्न श्रेणियों में विभाजित किया गया है, उदाहरण के लिए:डेटा स्थायित्व और उपलब्धता संबंधी समस्याएं, उदाहरण कनेक्शन समस्याएं, व्यवस्थापकीय समस्याएं, और डेटा निर्यात और आयात करने के साथ समस्याएं। प्रत्येक श्रेणी के विशिष्ट मुद्दे और सीमाएं हैं, उनमें से कुछ हैं:

  • लंबे समय से चल रहे संचालन को रद्द या रोका नहीं जा सकता।
  • इंस्टेंस को हटाने के तुरंत बाद इंस्टेंस नामों का उपयोग नहीं किया जा सकता है।
  • DEFINER क्लॉज के कारण आयात विफल हो जाएगा।

MySQL के लिए Azure डेटाबेस में अपग्रेड, विशेषाधिकार और स्टोरेज इंजन से संबंधित कुछ सीमाएँ और ज्ञात समस्याएँ हैं। कुछ विवरण इस प्रकार हैं:

  • प्रमुख डेटाबेस अपग्रेड वर्तमान में समर्थित नहीं है। एक बड़े अपग्रेड के लिए आपको एक डंप करना होगा और एक नए सर्वर में पुनर्स्थापित करना होगा।
  • MySQL के लिए Azure डेटाबेस वर्तमान में InnoDB और मेमोरी स्टोरेज इंजन का समर्थन करता है।
  • MySQL के लिए नीला डेटाबेस में सिस्टम डेटाबेस केवल-पढ़ने के लिए सेट है। आप mysql सिस्टम डेटाबेस में कुछ भी नहीं बदल सकते हैं।

आपको प्रत्येक क्लाउड प्रदाता पर MySQL के लिए सीमाओं और ज्ञात समस्याओं की जांच करने की आवश्यकता है, और यह समझने के लिए कि क्या यह एप्लिकेशन को प्रभावित करता है, अपनी आवश्यकताओं के साथ तुलना करें।

बैकअप और पुनर्स्थापना

MySQL के लिए Amazon RDS शेड्यूल के अनुसार स्वचालित बैकअप चलाता है, यह डेटाबेस इंस्टेंस का वॉल्यूम स्नैपशॉट लेता है। बैकअप प्रतिधारण अवधि का डिफ़ॉल्ट 7 दिन है। इतना ही नहीं, RDS पॉइंट इन टाइम रिकवरी के लिए हर 5 मिनट में डेटाबेस इंस्टेंस के लिए आपके ट्रांजेक्शन लॉग्स को S3 पर अपलोड करता है।

आप बैकअप प्रतिधारण अवधि के भीतर एक नया इंस्टेंस बनाकर बैकअप को किसी विशिष्ट समय पर पुनर्स्थापित कर सकते हैं। आप नवीनतम संभव समय को पुनर्स्थापित करने के लिए नवीनतम पुनर्स्थापना योग्य समय चुन सकते हैं, या आप डेटा को पुनर्स्थापित करने के लिए एक विशिष्ट समय को परिभाषित करने के लिए एक कस्टम चुन सकते हैं।

MySQL के लिए CloudSQL में होने वाला बैकअप वृद्धिशील होता है। इसमें पिछले बैकअप के बाद केवल डेटा के परिवर्तन होते हैं। सबसे पुराना बैकअप आपके वर्तमान डेटाबेस आकार के समान है। जब सबसे पुराना बैकअप हटा दिया जाता है, तो निम्न सबसे पुराने बैकअप का आकार बढ़ रहा है, ताकि पूर्ण बैकअप अभी भी मौजूद रहे।

स्वचालित बैकअप हर दिन होता है और इसे डिफ़ॉल्ट रूप से 7 दिनों तक बनाए रखा जाता है। CloudSQL बैकअप डेटा को 2 क्षेत्रों में अतिरेक के लिए संग्रहीत करता है। एक क्षेत्र उसी में हो सकता है जैसे इंस्टेंस चल रहा है, और दूसरा एक अलग क्षेत्र में है।

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

MySQL के लिए Azure डेटाबेस डेटा फ़ाइलों का बैकअप और लेन-देन लॉग लेता है। बैकअप का शेड्यूल अपने आप में 4TB स्टोरेज साइज वाले सर्वर के लिए पूर्ण और डिफरेंशियल बैकअप का एक संयोजन है, जबकि स्नैपशॉट बैकअप 16TB अधिकतम स्टोरेज सर्वर के लिए होता है।

पूर्ण बैकअप सप्ताह में एक बार चलता है, जबकि अंतर बैकअप दिन में दो बार होता है। बैकअप की डिफ़ॉल्ट अवधारण अवधि 7 दिन है, लेकिन आप अवधारण को हमेशा 35 दिनों तक कॉन्फ़िगर कर सकते हैं।

MySQL के लिए Azure डेटाबेस में दो प्रकार की बहाली होती है, जो है:

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

कृपया ध्यान दें कि न तो AWS, Google और न ही Azure आपको अपने बैकअप डाउनलोड करने की अनुमति देते हैं।

डेटाबेस निगरानी

RDS CloudWatch के साथ मॉनिटरिंग इंटीग्रेशन प्रदान करता है, आप CPU यूटिलाइजेशन, DB कनेक्शंस जैसे कुछ मेट्रिक्स देख सकते हैं, IOPS लिख सकते हैं और IOPS पढ़ सकते हैं, थ्रूपुट लिख सकते हैं और थ्रूपुट पढ़ सकते हैं, लेटेंसी लिख सकते हैं और पढ़ सकते हैं। आप कुछ मीट्रिक श्रेणी के आधार पर CloudWatch से अलर्ट ट्रिगर करने के लिए अलार्म बना सकते हैं और केवल सीमा निर्धारित कर सकते हैं।

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

MySQL के लिए Azure डेटाबेस कुछ मीट्रिक प्रदान करता है, उदाहरण के लिए; सक्रिय कनेक्शन, CPU प्रतिशत, विफल कनेक्शन, IO प्रतिशत, मेमोरी प्रतिशत, प्रतिकृति अंतराल, संग्रहण प्रतिशत, उपयोग किया गया संग्रहण। आप MySQL के लिए Azure डेटाबेस में अलर्ट भी बना सकते हैं, मेट्रिक्स चुन सकते हैं और नियमों को परिभाषित कर सकते हैं।

निष्कर्ष

4 प्रमुख क्षेत्रों पर आधारित; MySQL संस्करण और पैच, ज्ञात मुद्दे और सीमाएं, बैकअप और पुनर्स्थापना, डेटाबेस निगरानी, ​​मेरी राय में MySQL के लिए Amazon RDS अभी भी MySQL के लिए एक सेवा के रूप में सबसे अच्छा डेटाबेस है। यह दूसरों की तुलना में विस्तृत संस्करण और पैच, बहुत सीमित मुद्दे और सीमाएं प्रदान करता है। यह MySQL को चलाने का एक सुविधाजनक तरीका है, इस चेतावनी के साथ कि हाल के वर्षों में सेवा की कीमत बढ़ गई है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्ट php mysql . के लिए कीवर्ड विभाजित करें

  2. डेटाबेस व्यवस्थापकों के लिए शीर्ष MySQL ब्लॉग और वेबसाइट

  3. कैसे mysql चयन क्वेरी में दो तिथियों के बीच की तारीखों की सूची प्राप्त करने के लिए?

  4. टर्मिनल के भीतर से mysql का उपयोग करके चेतावनी संदेशों को रोकें, लेकिन पासवर्ड बैश स्क्रिप्ट में लिखा गया है

  5. mysql में सिंगल कीवर्ड के साथ सिंगल जहां कंडीशन का उपयोग करके टेबल के सभी कॉलम खोजें