क्या MySQL को अकेले इंस्टॉल किया जाना है


20

मैं अक्सर लोगों को "हमारे MySQL सर्वर मशीन विफल" जैसे बयान सुनाता हूं, जिससे मुझे यह आभास होता है कि वे एक मशीन को अपने MySQL सर्वर के रूप में समर्पित करते हैं (मुझे लगता है कि वे केवल ओएस स्थापित करते हैं और केवल MySQL उस पर)। एक डेवलपर के रूप में एक sysadmin नहीं, मैं MySQL वेब सर्वर और PHP के साथ एक LAMP स्टैक के हिस्से के रूप में स्थापित किया जा रहा हूँ।

क्या कोई मुझे समझा सकता है:

  • एक अलग सर्वर पर MySQL स्थापित करने का क्या मतलब है? संसाधनों की बर्बादी की तरह लगता है जब मैं पूरे दीपक स्टैक को जोड़ सकता हूं और अतिरिक्त सर्वर भी।
  • यदि डेटाबेस एक अलग मशीन पर है, तो उन ऐप्स को कैसे कनेक्ट करना है जो इसे कनेक्ट करने के लिए उपयोग करना चाहते हैं?

जवाबों:


30

जब आपका एप्लिकेशन प्लेटफ़ॉर्म और आपका डेटाबेस संसाधनों के लिए प्रतिस्पर्धा कर रहे हों, तो यह आमतौर पर पहला संकेत होता है कि आप एक समर्पित डेटाबेस सर्वर के लिए तैयार हैं।

दूसरे, उच्च उपलब्धता: डेटाबेस क्लस्टर स्थापित करना (और आमतौर पर बदले में, एक लोड-संतुलित वेब / एप्लिकेशन सर्वर क्लस्टर)।

मैं यह भी कहूंगा कि अलग-अलग सर्वरों की चाल में सुरक्षा एक बड़ी भूमिका निभाती है क्योंकि आपके पास प्रत्येक सर्वर के लिए नेटवर्क एक्सेस के लिए अलग-अलग नीतियां हो सकती हैं (उदाहरण के लिए, LAN पर डेटाबेस सर्वर के साथ DMZ'ed वेब सर्वर)।

डेटाबेस सर्वर तक पहुंच नेटवर्क पर है। जब आप आमतौर पर अपने डेटाबेस होस्ट के लिए "लोकलहोस्ट" निर्दिष्ट कर रहे होते हैं, तो आप अपने डेटाबेस सर्वर के होस्ट / आईपी पते को निर्दिष्ट करेंगे। नोट: आमतौर पर आपको कनेक्शन की अनुमति देने के लिए अपने डेटाबेस सर्वर के कॉन्फ़िगरेशन को संशोधित करने की आवश्यकता होती है / लूपबैक इंटरफ़ेस के अलावा अन्य इंटरफ़ेस पर सुनने में सक्षम होना चाहिए।


इसके अलावा, एक समर्पित मशीन डिस्क कॉन्फ़िगरेशन को उचित रूप से ट्विक करने की अनुमति देती है। जब RAID 6 पर डेटा रहता है तो वेब सर्वर काफी खुश होते हैं; डेटाबेस सर्वर RAID 1 को पसंद करते हैं
साइमन रिक्टर

12

एक अलग डेटाबेस सर्वर अच्छे, स्केलेबल डिजाइन का सिर्फ एक हिस्सा है। इससे कोई फर्क नहीं पड़ता कि आपका ट्रैफ़िक बहुत अधिक नहीं है और एक ही सर्वर सही मायने में पर्याप्त है।

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

इसके अलावा sysadmin के दृष्टिकोण से यह अधिक स्पष्ट है कि अगर समझदारी से नामित सर्वर हैं, जैसे "mysql-01.yourcompany.com" और "webserver-01.yourcompany.com"। जब उन्हें अलर्ट मिलता है, तो वे तुरंत देखते हैं कि क्या चल रहा है, कम से कम "ठीक है, डेटाबेस में कुछ गड़बड़ है"। मुझे पता है कि यह एक कमजोर तर्क है क्योंकि कई DNS नाम एकल सर्वर को इंगित कर सकते हैं लेकिन फिर भी।

आपके अनुप्रयोग नेटवर्क पर समस्याओं के बिना एक दूरस्थ डेटाबेस सर्वर से जुड़ेंगे। Aieeeeeee! आपका वेब ब्राउज़र रिमोट सर्वर से कैसे जुड़ता है? यह जादू है! Erm .... और अधिक गंभीरता से, 'लोकलहोस्ट' के बजाय आप केवल $ प्रोग्रामिंग_language_of_your_choice में सर्वर पता प्रदान करते हैं और आप सभी सेट होते हैं।


2
इसके अलावा जेन की टिप्पणी को फिर से देखें: sysadmin बिंदु ... जब आपके पास प्रदर्शन समस्याएं हैं या अन्यथा एप्लिकेशन को डीबग करने की आवश्यकता है, तो वेबरवर और डेटाबेस सर्वर अलग-अलग मशीनों पर होने पर यह बहुत आसान है।
HTTP500

5
  • कुछ वेबसाइट / एप्लिकेशन एक डेटाबेस का इतना भारी उपयोग करते हैं कि उन्हें डेटाबेस में समर्पित एक या अधिक सर्वर की आवश्यकता होती है।
  • नेटवर्क पर।

3

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

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

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


2

MySQL क्वेरी में बहुत संसाधन गहन होने की संभावना है, जो आपके LAMP सर्वर को धीमा कर सकती है।

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

वेब सर्वर को localhostडेटाबेस क्वेरी के बजाय इसे डेटाबेस क्वेरी से कनेक्ट करने की आवश्यकता है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.