लेकिन हाल ही में मैं एक सर्वर पर कुछ डेटाबेस में आया था जहाँ हर डेटाबेस में कई mdf फाइलें थीं।
यह गलत नामकरण सम्मेलन के कारण है। Microsoft का कहना है कि प्रत्येक डेटाबेस में एक प्राथमिक डेटा फ़ाइल होती है, लेकिन इसका मतलब यह नहीं है कि इसमें केवल एक "mdf डेटा फ़ाइल" हो सकती है, डेटाबेस में .mdf
विस्तार के साथ कई डेटा फ़ाइल हो सकती हैं, लेकिन केवल एक ही प्राथमिक डेटा फ़ाइल होगी। mdf
प्राथमिक डेटा फ़ाइल को विस्तार देना और ndf
द्वितीयक डेटा फ़ाइल को उचित सीमांकन करना बेहतर है, लेकिन यह कोई कठिन और तेज़ नियम नहीं है। आप प्राथमिक डेटा फ़ाइल को .cc एक्सटेंशन भी दे सकते हैं, तो आपने जो देखा है वह सामान्य है। एक तथ्य के रूप में आप अपनी पसंद का कोई भी विस्तार दे सकते हैं।
क्या किसी डेटाबेस के लिए कई .mdf फाइलें होने का कोई ज्ञान है?
यदि तुम्हारा मतलब:
क्या डेटाबेस के लिए कई प्राथमिक फाइलें होने का कोई ज्ञान है ?
उत्तर नहीं है, एक डेटाबेस में केवल एक प्राथमिक डेटा फ़ाइल हो सकती है।
लेकिन अगर आपका मतलब है:
क्या डेटाबेस के लिए कई डेटा फ़ाइलें (.mdf, .ndf, या अलग-अलग नाम) होने में कोई बुद्धिमत्ता है ?
यह निर्भर करता है, आप कई डेटा फ़ाइलों के साथ लाभ प्राप्त कर सकते हैं और नहीं कर सकते। यदि वे विभिन्न भौतिक ड्राइवों में फैले हुए हैं (मैं स्पिंडल के बारे में बात कर रहा हूं) तो आपको गहन आवेदन लिखने के साथ कुछ फायदा होगा। यदि वे सभी समान तार्किक विभाजन पर हैं तो इसका कोई लाभ नहीं होगा क्योंकि अंतर्निहित वे सामान्य संसाधन का उपयोग करेंगे। फ़ाइलों और फ़ाइलग्रुप का उपयोग करने से डेटाबेस के प्रदर्शन में सुधार होता है, क्योंकि यह एक डेटाबेस को कई डिस्क, मल्टीपल डिस्क कंट्रोलर या RAID (स्वतंत्र डिस्क के निरर्थक सरणी) सिस्टम में बनाने देता है। उदाहरण के लिए, यदि आपके कंप्यूटर में चार डिस्क हैं, तो आप एक डेटाबेस बना सकते हैं जो तीन डेटा फ़ाइलों और एक लॉग फ़ाइल से बना है, जिसमें प्रत्येक डिस्क पर एक फ़ाइल है। जैसे-जैसे डेटा एक्सेस किया जाता है, चार रीड / राइट हेड डेटा को एक ही समय में समानांतर रूप से एक्सेस कर सकते हैं।
के अनुसार इस MSDN बोल लेख
फाइलग्रुप प्रत्येक फाइलग्रुप के भीतर सभी फाइलों में आनुपातिक भरण रणनीति का उपयोग करता है। जैसा कि डेटा फ़ाइल समूह के लिए लिखा गया है, SQL सर्वर डेटाबेस इंजिन फ़ाइल में प्रत्येक फ़ाइल के लिए पूरी फ़ाइल लिखने के बजाय, फ़ाइल समूह के भीतर प्रत्येक फ़ाइल में मुक्त स्थान के लिए आनुपातिक लिखता है। यह फिर अगली फ़ाइल को लिखता है। उदाहरण के लिए, यदि फ़ाइल f1 में 100 MB मुक्त है और फ़ाइल f2 में 200 MB मुक्त है, तो फ़ाइल f1 से एक सीमा आवंटित की जाती है, फ़ाइल f2 से दो विस्तार और इसी तरह। इस तरह, दोनों फाइलें एक ही समय में पूर्ण हो जाती हैं, और सरल स्ट्रिपिंग हासिल की जाती है।
अन्य लाभ जो मुझे पता है कि एक 1 टीबी डेटाबेस पर विचार करें यदि आपके पास इसके लिए एकल डेटा फ़ाइल होगी और आप इस डेटाबेस को किसी अन्य सर्वर पर पुनर्स्थापित करना चाहते हैं तो इसकी अत्यधिक संभावना नहीं है कि आपके पास 1 टीबी मुक्त स्थान होगा। अब यदि एक ही डेटाबेस को अलग-अलग फाइलों पर फैलाया जाता है, तो प्रत्येक का आकार 250 G होता है, जो बहाली में आसान हो जाता है। यह वास्तव में आपका परिदृश्य नहीं हो सकता है, लेकिन यह एक 1 टीबी ड्राइव की तुलना में चार 250 जी ड्राइव के साथ एक सर्वर खोजने में बहुत कम मदद करता है
मैं कहूंगा कि कई डेटा फ़ाइलों के बजाय अलग-अलग फ़ाइल समूहों के लिए बेहतर है, लेकिन फिर से कई वातावरण नहीं हैं। कई फ़ाइलग्रुप से बने डेटाबेस को एक प्रक्रिया में चरणों में बहाल किया जा सकता है जिसे टुकड़े टुकड़े को बहाल करने के रूप में जाना जाता है। टुकड़ों का पुनर्स्थापन सभी रिकवरी मॉडल के साथ काम करता है, लेकिन सरल मोड की तुलना में पूर्ण और थोक-लॉग मॉडल के लिए अधिक लचीला है। डेटाबेस में फ़ाइलें या फ़ाइल समूह अलग-अलग समर्थित और पुनर्स्थापित किए जा सकते हैं । यह आपको डेटाबेस के बाकी हिस्सों को बहाल किए बिना केवल क्षतिग्रस्त फ़ाइलों को पुनर्स्थापित करने की अनुमति देता है। फ़ाइलग्रुप बैकअप में फ़ाइलें व्यक्तिगत रूप से या समूह के रूप में पुनर्स्थापित की जा सकती हैं