नाम और डिफ़ॉल्ट उदाहरण क्या हैं? उनके बीच क्या अंतर हैं? उनका उपयोग क्यों किया जाता है?
नाम और डिफ़ॉल्ट उदाहरण क्या हैं? उनके बीच क्या अंतर हैं? उनका उपयोग क्यों किया जाता है?
जवाबों:
Microsoft के अनुसार नामांकित डिफ़ॉल्ट के बारे में
क्लाइंट अनुप्रयोग SQL सर्वर डेटाबेस के साथ काम करने के लिए Microsoft SQL Server 2005 की एक आवृत्ति से कनेक्ट होते हैं। प्रत्येक SQL सर्वर आवृत्ति सेवाओं की एक विशिष्ट सेट से बना है जिसमें अद्वितीय सेटिंग्स हो सकती हैं। निर्देशिका संरचना, रजिस्ट्री संरचना, और सेवा का नाम सभी विशिष्ट उदाहरण नाम को दर्शाते हैं जो आप सेटअप के दौरान पहचानते हैं।
एक उदाहरण या तो डिफ़ॉल्ट, अनाम उदाहरण है, या यह एक नामांकित उदाहरण है। जब SQL सर्वर 2005 डिफ़ॉल्ट इंस्टॉलेशन में स्थापित होता है, तो उसे कनेक्शन बनाने के लिए क्लाइंट का नाम निर्दिष्ट करने की आवश्यकता नहीं होती है। क्लाइंट को केवल सर्वर का नाम पता होना चाहिए।
एक नामांकित उदाहरण को कंप्यूटर के नेटवर्क नाम से पहचाना जाता है और इंस्टालेशन के दौरान आपके द्वारा निर्दिष्ट उदाहरण नाम। कनेक्ट करते समय क्लाइंट को सर्वर नाम और इंस्टेंस नाम दोनों को निर्दिष्ट करना होगा।
डिफ़ॉल्ट रूप से, SQL सर्वर डिफ़ॉल्ट उदाहरण में स्थापित करता है जब तक कि आप एक उदाहरण का नाम निर्दिष्ट न करें। हालाँकि, SQL सर्वर एक्सप्रेस, हमेशा एक नामित उदाहरण में स्थापित होता है जब तक कि आप सेटअप के दौरान एक डिफ़ॉल्ट स्थापना को मजबूर न करें।
इसके अलावा, आप केवल एक डिफ़ॉल्ट (अनाम उदाहरण) स्थापित कर सकते हैं, लेकिन आप कई नामित इंस्टेंस स्थापित कर सकते हैं।
कई थर्ड पार्टी सॉफ्टवेयर आमतौर पर एक डिफ़ॉल्ट नाम के उदाहरण का उपयोग करेंगे, हालांकि वे इसका उल्लेख नहीं कर सकते हैं। उपरोक्त उत्तरों से कारण स्पष्ट है, मानक संस्करण डिफ़ॉल्ट रूप से एक अनाम उदाहरण स्थापित करते हैं जबकि एक्सप्रेस संस्करण डिफ़ॉल्ट रूप से एक नामांकित इंस्टेंस स्थापित करता है।
इस परिप्रेक्ष्य से अंतर के बारे में जानना महत्वपूर्ण है क्योंकि यदि आपके पास 2 या 3 DB सर्वर चल रहे हैं, तो आप कभी भी सही संस्करण से कनेक्ट नहीं कर सकते। क्योंकि थर्ड पार्टी सॉफ्टवेयर डिफॉल्ट इंस्टेंस की तलाश में है, जबकि आप सोच रहे हैं कि यह SQLEXPRESS उदाहरण है जो इसे कनेक्ट करने की कोशिश कर रहा है। यह आपके समस्या निवारण समय को महत्वपूर्ण रूप से बढ़ा सकता है, यदि आप नहीं जानते कि किसी नामांकित बनाम अनाम उदाहरण से कैसे कनेक्ट किया जाए।
इसलिए यदि आप नामांकित या संस्करण से कनेक्ट करना चाहते हैं, तो निम्न दिशानिर्देशों का उपयोग करें।
MY-MACHINE-NAME\SQLEXPRESS /* named version - correct */
MY-MACHINE-NAME /* unnamed version (default instance) - correct */
MY-MACHINE-NAME\MSSQLSERVER /* unnamed version (default instance) - Wrong */
ध्यान दें कि भले ही एक डिफ़ॉल्ट उदाहरण में एक नाम हो, लेकिन उसे उसके नाम से संदर्भित नहीं किया जा सकता है!
ब्रेट जी ने जो स्पष्टीकरण दिया, उसके अलावा, यहां कुछ कारण दिए गए हैं कि उनका उपयोग क्यों किया जाए:
इनका उपयोग करने के सभी प्रकार के कारण। इसका मतलब यह नहीं है कि यह हमेशा एक अच्छा विचार है, हालांकि: पी
फिर भी एक और व्यावहारिक अंतर: SQL2005 और अप आपको प्रति सिस्टम 16 या अधिक इंस्टेंस स्थापित करने की अनुमति देता है। चूंकि लाइसेंस SQL सर्वर की स्थापना के अनुसार भौतिक सीपीयू के अनुसार है, (और प्रति उदाहरण नहीं !), इसका मतलब है कि आप SQL सर्वर 2005 के 16 उदाहरणों को बिना एक प्रतिशत अधिक भुगतान किए चला सकते हैं।
यह देखते हुए कि सीपीयू लाइसेंस प्रति सॉकेट में $ 15000 (!) तक चल सकता है, यह 16 कोर और 256GB मेमोरी के साथ बड़े इंस्टॉलेशन के लिए जरूरी है।
सबसे अच्छे कारणों में से एक डेटाबेस का अलग होना है। यदि आप अपना स्वयं का अनुप्रयोग विकसित कर रहे हैं और इसके साथ SQL एक्सप्रेस की पैकेजिंग कर रहे हैं, तो यह इसे अपने उदाहरण में स्थापित करने के लिए समझ में आता है। साथ ही उपयोगकर्ता को मौजूदा एसक्यूएल इंस्टॉलेशन निर्दिष्ट करने का विकल्प देता है यदि वे ऐसा करते हैं।
यदि आपके पास एक ऐसा डेटाबेस है जो महत्वपूर्ण है कि आप यह सुनिश्चित करना चाहते हैं कि किसी और के पास पहुंच न हो, तो यह बहुत सीमित सुरक्षा प्राधिकरण के साथ अपने आप में जा सकता है। मान लीजिए कि आपका डीबोक्यूशन डीबी है, और यह फिर उसी सर्वर ** पर रिपोर्टिंग डीबी की नकल करता है जिसे केवल लोगों के लिए पढ़ा जाता है। यह कम ही है, हालांकि उपयोगकर्ता (व्यवस्थापक) त्रुटि उपयोगकर्ताओं को गलती से उत्पादन डीबी तक पहुंच प्राप्त होगी, जो सीमित करके वास्तव में केवल कुछ लोगों को उत्पादन उदाहरण पर सुरक्षा समूहों को अपडेट करने में सक्षम है।
** अच्छा अभ्यास रिपोर्टिंग सर्वर को एक अलग मशीन बनाने के लिए कहता है, लेकिन मैं सिर्फ एक उदाहरण के रूप में ऐसा कर रहा हूं।