एक अलग ड्राइव पर SQL सर्वर आवृत्ति रूट निर्देशिका होना उपयोगी है?


29

मुझे पता है कि SQL सर्वर को स्थापित करने के दौरान कई डिफ़ॉल्ट रास्तों को बदलना संभव है, और आम तौर पर जब मैं एक इंस्टाल करता हूं तो मैं अलग-अलग ड्राइव (आमतौर पर डी और ई) पर होने के लिए डेटा और लॉग फ़ोल्डर्स को बदल देता हूं, हालांकि मुझे हाल ही में एक दिया गया है पूर्व-स्थापित मशीन जो डिफ़ॉल्ट के अलावा एक उदाहरण नाम चला रही है और उन्होंने mD फ़ाइलों के साथ D ड्राइव पर होने के लिए आवृत्ति रूट निर्देशिका को कॉन्फ़िगर किया है। इसका मतलब यह है कि आम तौर पर सिर्फ फ़ोल्डर और डेटाबेस फ़ाइलों के साथ एक अपेक्षाकृत साफ ड्राइव होगी जिस पर अब मेरे पास SQL ​​सर्वर बायनेरिज़ की पूरी स्थापना भी है।

यानी मेरे पास अब निम्नलिखित हैं:

C:\Program Files\Microsoft SQL Server\ --Base Install
D:\Microsoft SQL Server\MSSQL10_50.MyInstance --Instance Binaries
D:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\DATA --Data Files
E:\Microsoft SQL Server\MSSQL10_50.MyInstance\MSSQL\LOGS --Log Files

जहाँ आम तौर पर मैं किसी चीज़ के साथ चलता हूँ:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\ --Base Install & Default Instance Binaries
D:\MSSQL\DATA --Data Files
E:\MSSQL\LOGS --Log Files

मैं समझ सकता हूं कि एक अलग उदाहरण बाइनरी फ़ोल्डर होना क्यों आवश्यक है, लेकिन मैं यह नहीं देख सकता कि उन सभी बायनेरिज़ को एक अलग ड्राइव पर रखना क्यों उपयोगी होगा।

क्या कोई मुझे बता सकता है कि ऐसा करना उचित क्यों हो सकता है? या शायद यह सिर्फ कोई फर्क नहीं पड़ता है? मेरे लिए यह सिर्फ बहुत अशुभ लगता है ...

जवाबों:


23

उदाहरण की जड़ को विभाजित करने के संबंध में इसे करने के पक्ष में युगल तर्क हैं।

  1. कुछ लोग अपने "सी" ड्राइव को केवल ओएस और ओएस बायनेरिज़ को समर्पित रखने के पक्ष में हैं। यह आपको C ड्राइव पर क्रैश होने की स्थिति में रिकवरी के लिए कुछ अलग विकल्प दे सकता है, यह OS को अन्य ऐप्स के साथ साझा करने से अंतरिक्ष संबंधी समस्याओं को उत्पन्न करने या प्राप्त करने में मदद कर सकता है।
  2. आप एसक्यूएल सर्वर के बायनेरिज़ को अन्य कार्यक्रमों से अलग कर रहे हैं और कुछ महत्वपूर्ण फ़ोल्डरों की उपलब्धता सुनिश्चित कर रहे हैं जैसे लॉग्स फोल्डर जहां त्रुटि लॉग जाते हैं - इस फ़ोल्डर को एसक्यूएल सर्वर के लिए सुलभ होना चाहिए। आप मूल रूप से खुद को दूसरों से बचा रहे हैं।

आप SQL सर्वर बायनेरिज़ / इंस्टेंस फ़ाइलों को उसी स्थान पर रख सकते हैं जहाँ आप अपनी अन्य प्रोग्राम फ़ाइलों को रखना चाहते हैं। लेकिन अगर आप ऐसा करते हैं - तो कम से कम यह सुनिश्चित करें कि आप अपने सिस्टम डेटाबेस की फाइलें और संभावित रूप से अपने डिफ़ॉल्ट बैकअप स्थान को ले जाएं और इसे कहीं और स्थानांतरित करें।

यहाँ है कि मैं क्या करने के लिए ड्राइव अक्षर का एक असीमित संख्या के साथ खेलने के लिए देते हैं (कम से कम .. पत्र यहाँ महत्वपूर्ण नहीं हैं):

  • सी - ओएस और सिस्टम स्तर की फाइलें। केवल
  • डी - सभी ऐप्स के लिए प्रोग्राम फ़ाइलें (SQL सर्वर सहित)
  • एस - इंस्टेंस लेवल फाइल्स / एसक्यूएल सर्वर सिस्टम डेटाबेस और लॉग फाइल आमतौर पर (टेंपडीबी को छोड़कर) (नोट) .. यदि मेरे पास कई इंस्टेंस हैं, तो मैं इनमें से 4 नहीं बनाऊंगा .. मैं सभी इंस्टेंस पर सभी एसक्यूएल बायनेरिज़ डालूँगा। एस अधिकांश स्थितियों में, अलग करने वाले फ़ोल्डर्स के साथ)

( ED- एक और नोट - मेरे पास अक्सर एक "S" ड्राइव उपलब्ध नहीं होता है। दिन के अंत में, मास्टर, मॉडल, MSDB और संसाधन db के लिए आपके सिस्टम डेटाबेस की फाइलें उसी ड्राइव पर रहती हैं, जो आपके उपयोगकर्ता के समान है। डेटाबेस फ़ाइलें, लेकिन तार्किक जुदाई के लिए एक अलग फ़ोल्डर में चीजों को कम भ्रामक रखने के लिए दुनिया का अंत नहीं है।)

  • F - उपयोगकर्ता डेटाबेस के लिए डेटा फ़ाइलें
  • एल - उपयोगकर्ता डेटाबेस के लिए लॉग फ़ाइल ड्राइव
  • टी - टेम्पपडी
  • एक्स - बैकअप ड्राइव (हालांकि बहुत सारे मामलों में मैं एक बैकअप को एक नेटवर्क ड्राइव पर स्ट्रीम करने के लिए चुनता हूं, बैकअप के बाद कॉपी के लिए भुगतान नहीं करता हूं और मैं तुरंत कहीं और स्टोर करने के लिए बैकअप ले रहा हूं।)

मेरे पास अक्सर अधिक डेटा और लॉग ड्राइव और कभी-कभी एक और TempDB ड्राइव होता है। कई उदाहरणों में जोड़ें और आप ड्राइव अक्षरों से जल्दी से बाहर चला सकते हैं। आप निश्चित रूप से C: पर अपनी इंस्टेंस लेवल फाइल्स डालकर दूर हो सकते हैं। और मैं उन ग्राहकों के लिए बहुत सारी स्वास्थ्य जांच करता हूं जो उस तरह से सेटअप थे - और मैं कभी भी नहीं कहता "ओह वाह .. हमें अब इसे ठीक करना होगा" - अब अगर उनकी TempDB फ़ाइल (s) वहाँ हैं, तो भी, मैं आमतौर पर हूँ उन्हें बदल दिया है कि कभी-कभी अपने गुरु और MSDB डेटाबेस को भी स्थानांतरित करें।

लेकिन दुनिया खत्म नहीं होगी यदि आप इन चीजों को विभाजित नहीं करते हैं। मुझे लगता है कि लाभ वास्तव में सिर्फ रखने के लिए है-फाइलें अलग। एक डीबीए के रूप में आपको अपनी कंपनी में अन्य भूमिकाओं, अन्य अनुप्रयोगों, अन्य स्थापनाओं आदि के आसपास एक स्वस्थ व्यामोह होना चाहिए और जितना अधिक आप अपने आप को संघर्षों की संभावनाओं से अलग कर सकते हैं, उतना ही बेहतर होगा। और यह आपको पुनर्स्थापना और पुनर्प्राप्ति के लिए कुछ और विकल्प देता है। तो हाँ अपने बायनेरिज़ को C से अलग करें .. लेकिन मेरी सलाह प्रत्येक उदाहरण के लिए एक अलग ड्राइव पर पागल होने की नहीं होगी।


3

खैर, विंडोज में केवल 26 संभव ड्राइव अक्षर हैं। 1
लेकिन आपके पास माउंट पॉइंट्स का उपयोग करने की संभावना है। 2

इसलिए यदि आपको एक मशीन पर 25 विभिन्न (SQL, Web, ...) सर्वर स्थापित करने की आवश्यकता है, तो इसका मतलब यह हो सकता है कि सर्वर में से किसी एक के लिए एक ड्राइव-लेटर हो।
लेकिन अगर आपके पास केवल एक सर्वर है, तो लॉग फाइल, डेटाबेस और प्रोग्राम-फाइलों के लिए अलग-अलग ड्राइव-लेटर्स का अधिक अर्थ होगा।
यदि आप अलग-अलग फ़ोल्डर में हैं, तो आप लॉग / डेटाबेस / प्रोग्राम-फाइल को भी विभाजित कर सकते हैं।

  1. SQL सर्वर बंद करो
  2. एक विभाजन जोड़ें
  3. विभाजन के लिए सभी डेटाबेस-फ़ाइलों की प्रतिलिपि बनाएँ
  4. फ़ोल्डर, जहाँ डेटाबेस-फाइलें हैं (उदाहरण के लिए: d: \ डेटाबेस)
  5. ख़त्म होना

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

1
मुझे खेद है कि मैंने आपको गलत समझा। SQL से जुड़ी हर चीज को एक साथ एक ड्राइव पर रखने का एक अच्छा बिंदु बैकअप-स्क्रिप्ट की सादगी हो सकती है, जिसे केवल इस ड्राइव पर चलाने की आवश्यकता होती है। लेकिन अगर आप सब कुछ एक ही ड्राइव में डालते हैं, तो डेटाबेस, बायनेरिज़ और लॉग अलग फ़ोल्डर में होना चाहिए। और मैं माउंटपॉइंट्स के साथ इस बिंदु पर आया, कि आप पूरे सिस्टम को बदले बिना डेटा को अलग-अलग विभाजन पर पुनर्गठित कर सकते हैं।

@gnomix आप हमेशा उनके नीचे दिए गए 'संपादन' लिंक पर क्लिक करके अपने उत्तर (और प्रश्न) संपादित कर सकते हैं।
डेज़ो

@gnomix संभावित बैकअप स्क्रिप्ट की सादगी मुख्य कारणों में से एक है जो मैं डेटा और लॉग को अपनी ड्राइव पर रखने के लिए करता हूं, लेकिन मुझे सिस्टम फ़ाइलों का बैकअप लेने की आवश्यकता कभी नहीं हुई है। मैं जानना चाहता हूं कि क्या यह एक सामान्य आवश्यकता है। मेरी वृत्ति मुझे बताती है कि सिस्टम फाइल को गैर-सिस्टम ड्राइव पर रखने से समस्या हो सकती है।
adhocgeek

1
इसके अलावा, ड्राइव को दो या दो से अधिक विभाजनों में अलग करने से वास्तव में डिस्क I / O को मदद नहीं मिलेगी। लेकिन हां, मैं आपसे पूरी तरह सहमत हूं। यह डेटाबेस फ़ाइलों को ड्राइव की जड़ में डालने के लिए चीजों को इतना अच्छा बनाता है और इससे चीजों को स्पॉट करना आसान हो जाता है। मैं आमतौर पर D: \ Data E: \ Logs F: \ Backup, ...
user1207758
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.