MySQL डेटाबेस की निगरानी कैसे करें?
किसी भी उत्पादन वातावरण में परिचालन दृश्यता जरूरी है। जितनी जल्दी हो सके किसी भी मुद्दे की पहचान करने में सक्षम होना महत्वपूर्ण है, अन्यथा आप गंभीर समस्याओं में समाप्त हो सकते हैं क्योंकि एक ज्ञात समस्या गंभीर सेवा व्यवधान या डाउनटाइम का कारण बन सकती है। MySQL एंटरप्राइज मॉनिटर बाजार पर MySQL के लिए सबसे पुराने निगरानी उत्पादों में से एक है, और Oracle से एक वाणिज्यिक उद्यम सदस्यता समझौते के हिस्से के रूप में उपलब्ध है। इस ब्लॉग पोस्ट में हम MySQL एंटरप्राइज मॉनिटर और इसके द्वारा प्रदान की जाने वाली अंतर्दृष्टि पर एक नज़र डालेंगे। MySQL में।
इंस्टॉलेशन
सबसे पहले, MySQL Enterprise Monitor, MySQL Enterprise Edition का हिस्सा है, जो Oracle की एक व्यावसायिक पेशकश है। यह विभिन्न ऑपरेटिंग सिस्टम के लिए पैकेज के कई संस्करणों में आता है। विंडोज 10 (जिस सिस्टम पर हमने परीक्षण किया) पर इंस्टॉलेशन काफी सीधा है। MySQL एंटरप्राइज़ मॉनिटर कॉन्फ़िगर किया गया है और कुछ बंडल सेवाएं स्थापित की जाएंगी (MySQL, Tomcat)। टूल को ब्राउज़र के माध्यम से एक्सेस किया जा सकता है।
प्रारंभिक कॉन्फ़िगरेशन
सबसे पहले, आपको उन मेजबानों को जोड़ना होगा जिन्हें आप मॉनिटर करना चाहते हैं।
आप या तो एकल होस्ट या उनमें से एक बैच जोड़ सकते हैं। डायलॉग विंडो एक जैसी दिखती है, सिवाय इसके कि बल्क में जोड़ते समय, आप सर्वरों की अल्पविराम से अलग की गई सूची पास कर सकते हैं।
हम विवरण में नहीं जाएंगे, लेकिन संक्षेप में आपको परिभाषित करना होगा कि किस होस्ट से MySQL इंस्टेंस की निगरानी की जानी चाहिए - आमतौर पर यह वह होस्ट होगा जिस पर आपने MySQL एंटरप्राइज मॉनिटर स्थापित किया था। आप अपने MySQL इंस्टेंस पर एजेंट भी सेट कर सकते हैं, उस स्थिति में वे होस्ट के लिए भी डेटा एकत्र करने में सक्षम होंगे, न कि केवल MySQL मेट्रिक्स। फिर आपको परिभाषित करने की आवश्यकता है कि मॉनिटर किए गए उदाहरण (आईपी पता/होस्टनाम, उपयोगकर्ता और पासवर्ड) तक कैसे पहुंचे। MySQL एंटरप्राइज मॉनिटर मॉनिटरिंग जैसे कार्यों के लिए अतिरिक्त उपयोगकर्ता बनाएगा, जिसके लिए सुपरयुसर विशेषाधिकारों की आवश्यकता नहीं होती है। यदि आप चाहें, तो आप एसएसएल संचार को भी कॉन्फ़िगर कर सकते हैं यदि MySQL इंस्टेंस का उपयोग करता है, तो आप कुछ टाइमआउट भी परिभाषित कर सकते हैं और यदि प्रतिकृति टोपोलॉजी का स्वतः पता लगाया जाना चाहिए या नहीं।
यह भी ध्यान रखना महत्वपूर्ण है कि MySQL एंटरप्राइज मॉनिटर प्रदर्शन स्कीमा पर बहुत अधिक निर्भर करता है - सुनिश्चित करें कि आपके डेटाबेस में PS सक्षम है, अन्यथा आपको MySQL एंटरप्राइज मॉनिटर की सुविधाओं के एक महत्वपूर्ण हिस्से से लाभ नहीं होगा।
निगरानी
एक बार मॉनिटर किए गए MySQL इंस्टेंस कॉन्फ़िगर हो जाने के बाद, आप एकत्रित डेटा को देखना शुरू कर सकते हैं। सिंहावलोकन अनुभाग आपको MySQL में कुछ सबसे महत्वपूर्ण मीट्रिक का संक्षिप्त सारांश देता है। डेटा एकत्र किया जाता है और यह किसी भी अप्रत्याशित पैटर्न को ढूंढना आसान बनाता है और फिर जो हुआ उसमें आगे की खोज करता है।
इवेंट टैब MySQL एंटरप्राइज मॉनिटर और उसके सलाहकारों द्वारा रिपोर्ट किए गए विभिन्न मुद्दों या घटनाओं का अवलोकन देता है। आप किसी भी घटना पर क्लिक कर सकते हैं और पढ़ सकते हैं कि यह क्या है, साथ ही साथ उठाए जाने वाले किसी भी अनुशंसित कदम:
इस विशेष मामले में ऐसा लगता है कि कुछ प्रश्न पूर्ण तालिका स्कैन कर रहे हैं और इस तरह के प्रश्नों को इंगित करने के लिए इसकी और जांच करने की अनुशंसा की जाती है और देखें कि क्या उन्हें अनुकूलित किया जा सकता है।
एक और उदाहरण, यहां हम देखते हैं कि टेबल कैश को इष्टतम तरीके से कॉन्फ़िगर नहीं किया गया है। आप इस अलर्ट के आधार पर समस्या की व्याख्या, सलाह और की जाने वाली अनुशंसित कार्रवाइयां देख सकते हैं।
मैट्रिक्स
इस टैब में हम कई MySQL मेट्रिक्स के लिए डेटा देख सकते हैं जो सिस्टम की स्थिति को समझने में सहायक होते हैं।
टाइम्सरीज ग्राफ़
ऊपर दिए गए स्क्रीनशॉट केवल एक उदाहरण हैं, देखने के लिए और भी बहुत से ग्राफ़ हैं।
फ़िल्टरिंग लागू करना संभव है:आप परिभाषित कर सकते हैं कि आप कौन से ग्राफ़ देखना चाहते हैं, आप यह भी परिभाषित कर सकते हैं कि किस समय सीमा को दिखाया जाना चाहिए। उसके ऊपर, आप केवल ग्राफ़ के एक हिस्से को चिह्नित कर सकते हैं और या तो उसमें ज़ूम कर सकते हैं या उस विशेष समय के डेटा के साथ क्वेरी एनालाइज़र खोल सकते हैं:
हम बाद में इस कार्यक्षमता के बारे में जानेंगे लेकिन संक्षेप में, यह आपको प्रश्नों का विश्लेषण करने की अनुमति देता है, कि समय के साथ उनका प्रदर्शन कैसे बदल गया और कुछ उदाहरण प्रश्न।
तालिका आंकड़े
यह टैब हमें तालिका के आँकड़ों की जानकारी देता है:ट्रैफ़िक कैसा दिखता था (पंक्तियाँ प्राप्त, सम्मिलित, अद्यतन, हटाई गईं) और सभी पंक्ति संचालनों के लिए विलंबता कैसी दिखती थी।
उपयोगकर्ता आंकड़े
इस टैब में MySQL एंटरप्राइज मॉनिटर उपयोगकर्ताओं के बारे में डेटा प्रस्तुत करता है - निष्पादित विवरण, विलंबता, टेबल स्कैन, I / O विलंबता, कनेक्शन, मेमोरी उपयोग। इस डेटा से काफी अच्छी जानकारी मिलनी चाहिए कि डेटाबेस पर लोड के लिए कौन सा उपयोगकर्ता जिम्मेदार है। यह विशेष रूप से बहु-उपयोगकर्ता वातावरण में बहुत उपयोगी हो सकता है, जहां यातायात का कोई एक मुख्य स्रोत नहीं है।
डेटाबेस फ़ाइल I/O
डेटाबेस फ़ाइल I/O बताता है कि डेटाबेस में फ़ाइलों में I/O लोड कैसे वितरित किया जाता है। I/O संचालन की कुल संख्या, विलंबता, किसी दिए गए फ़ाइल पर कितने पढ़े और लिखे गए थे।
स्मृति उपयोग
मेमोरी उपयोग MySQL में मेमोरी स्ट्रक्चर दिखाता है, जो डेटाबेस में मेमोरी उपयोग की बेहतर तस्वीर बनाने में मदद करता है। स्मृति संबंधी समस्याओं के मामले में यह डेटा काम आ सकता है - यह ट्रैक करना आसान है कि विकास सबसे बड़ा कहां है और यदि आवश्यक हो, तो प्रासंगिक सेटिंग्स को कम करें। यह संभावित मेमोरी लीक के निदान में भी महत्वपूर्ण मदद कर सकता है।
InnoDB बफर पूल
MySQL एंटरप्राइज मॉनिटर में यह टैब उपयोगकर्ता को बफर पूल उपयोग की संरचना में अंतर्दृष्टि देता है। कौन सी टेबल कैश्ड हैं, फ्लश करने के लिए कितने गंदे पेज हैं?
प्रश्न
किसी भी MySQL उपयोगकर्ता के लिए प्रश्नों के भार को समझना अत्यंत महत्वपूर्ण है। कौन से प्रश्न सबसे अधिक समस्याग्रस्त हैं? वे समय में कैसे व्यवहार करते हैं? प्रदर्शन को कई तरीकों से मापा जा सकता है लेकिन यह काफी सामान्य है कि यह अनुमानित है, स्थिर प्रदर्शन शीर्ष प्रदर्शन की तुलना में अधिक महत्वपूर्ण है। जब तक प्रतिक्रिया समय स्वीकार्य है, उपयोगकर्ता कुछ हद तक तेज प्रतिक्रिया (कम विलंबता) की तुलना में अनुमानित परिणामों को बेहतर पसंद करेंगे, जो कभी-कभी सर्वर को काफी धीमा कर सकते हैं। इसलिए यह देखना बहुत मूल्यवान है कि कोई प्रश्न समय पर कैसे व्यवहार करता है और उन्हें इंगित करता है कि कौन सा व्यवहार संगत नहीं है।
MySQL एंटरप्राइज मॉनिटर निश्चित रूप से ऐसा डेटा डिलीवर करता है। प्रश्नों की सूची में, आप आसानी से देख सकते हैं कि समय के साथ विलंबता कैसे बदली। फ्लैट लाइन अच्छी है, स्पाइक्स - इतना नहीं। इसका मतलब है कि इस तरह की पूछताछ की और जांच की जा सकती है। जब आप उस पर क्लिक करते हैं, तो MySQL Enterprise Monitor आपको इसके बारे में अधिक डेटा देगा।
जैसा कि आप देख सकते हैं, विशेष क्वेरी प्रकार के बारे में कुछ सांख्यिकीय डेटा हैं, आप यह भी देख सकते हैं कि समय के साथ विलंबता कैसे बदल गई। नीचे आप समय में कुछ उदाहरण विवरण देख सकते हैं और आप उनके निष्पादन समय की तुलना कर सकते हैं।
जब आप उनमें से किसी एक पर क्लिक करते हैं, तो आपको एक पूर्ण क्वेरी दिखाई देगी जो उस समय निष्पादित की गई थी। यह उन प्रश्नों के मामले में उपयोगी हो सकता है जहां प्रदर्शन भिन्न होता है, जो इस बात पर निर्भर करता है कि WHERE मामले में किस तर्क का उपयोग किया गया था (उदाहरण के लिए, WHERE some_column ='some value' और उस कॉलम के मान पंक्तियों में समान रूप से वितरित नहीं हैं)।
प्रतिकृति
एक MySQL प्रतिकृति वातावरण में, अंतराल एक ऐसी चीज है जिससे आपको निपटना सीखना होगा। महत्वपूर्ण बात यह है कि इसका ट्रैक रखना - गुलाम कितनी बुरी तरह पिछड़ रहे हैं? यह कितनी बार होता है? इस जानकारी के साथ यह संभव है कि समस्या का पता लगाने की कोशिश की जा सके और बेहतर तरीके से समझा जा सके कि कौन से प्रश्न इसका कारण बन रहे हैं। फिर आप कुछ सुधारों को लागू करने का प्रयास कर सकते हैं, उदाहरण के लिए, बहु-थ्रेडेड प्रतिकृति और ट्रैक करें कि क्या परिवर्तनों ने प्रतिकृति प्रदर्शन में सुधार किया है और अंतराल को स्वीकार्य स्तर तक कम कर दिया है।
MySQL एंटरप्राइज़ मॉनिटर, ClusterControl से किस प्रकार भिन्न है
जैसा कि हमने कहा, MySQL Enterprise Monitor भुगतान किए गए MySQL Enterprise संस्करण का एक हिस्सा है। MySQL समुदाय, MariaDB या Percona सर्वर के सभी उपयोगकर्ताओं के लिए, MySQL एंटरप्राइज़ संस्करण उपलब्ध नहीं है। ClusterControl अपने मुफ़्त सामुदायिक संस्करण में MySQL की निगरानी तक पहुँच प्रदान करता है। सर्वर और क्वेरी मॉनिटरिंग के संदर्भ में, कई समानताएँ हैं।
ClusterControl आपको प्रोमेथियस टाइम-सीरीज़ डेटाबेस में एकत्रित और संग्रहीत MySQL मेट्रिक्स तक पहुँच प्रदान करता है। आप आसानी से ClusterControl में उपलब्ध कराए गए कई मीट्रिक पर नज़र रख सकते हैं।
ClusterControl भी सलाहकारों की एक सूची के साथ आता है, जिसका उपयोग डेटाबेस के स्वास्थ्य और प्रदर्शन पर नज़र रखने के लिए किया जा सकता है। आप डेवलपर स्टूडियो का उपयोग करके आसानी से नए सलाहकार भी बना सकते हैं:
यदि आप क्वेरी प्रदर्शन में रुचि रखते हैं, तो ClusterControl आपके लिए एक क्वेरी मॉनिटर प्रदान करता है - निष्पादित क्वेरी एकत्र की जाती हैं और उनके प्रदर्शन की तुलना उपयोगकर्ता के लिए यह निर्धारित करना आसान बनाती है कि कौन सी क्वेरी डेटाबेस पर सबसे अधिक CPU का उपयोग करती है।
आप प्रश्नों पर सांख्यिकीय डेटा देख सकते हैं - निष्पादन, भेजी गई और जांच की गई पंक्तियाँ, निष्पादन समय। आप किसी विशेष प्रकार की क्वेरी के लिए व्याख्या योजना भी देख सकते हैं।
बहुभाषाविद दृढ़ता की निगरानी
एक बड़ा अंतर MySQL पारिस्थितिकी तंत्र (Oracle MySQL, MariaDB और Percona Server), विभिन्न क्लस्टरिंग तकनीकों (NDB क्लस्टर, समूह प्रतिकृति, अतुल्यकालिक प्रतिकृति और गैलेरा क्लस्टर), लोड बैलेंसर्स / प्रॉक्सी (HAProxy) के सभी मुख्य प्रकारों की निगरानी करने की क्षमता है। Keepalived, Maxscale, ProxySQL) और साथ ही अन्य ओपन सोर्स डेटाबेस (PostgreSQL और MongoDB)।
स्वचालन और प्रबंधन
ClusterControl एकल इंस्टेंस या क्लस्टर ऑन-प्रिमाइसेस या क्लाउड (AWS, GCE और Azure) में तैनात करने के लिए कार्यक्षमता प्रदान करता है, साथ ही बैकअप प्रबंधन, स्वचालित विफलता और पुनर्प्राप्ति / मरम्मत, रोलिंग अपग्रेड, प्रतिकृति या क्लस्टर सेटअप के लिए क्लस्टर प्रबंधन जैसी सुविधाएँ भी प्रदान करता है। , स्केलिंग, आदि.
आज के लोगों के लिए बस इतना ही। यदि आपने MySQL Enterprise Monitor के साथ काम किया है और कुछ जोड़ना चाहते हैं, तो कृपया टिप्पणी अनुभाग में ऐसा करें।