आपकी प्रारंभिक स्थिति के लिए, ऐसा लगता है कि आपने कुछ इस तरह की कोशिश की (या जब आप संवादों से गुजरते हैं तो GUI आपके लिए जो भी तैयार करता है):
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH;
हालांकि, इस विधि के लिए mdf
both दोनों की आवश्यकता होती है फ़ाइल और एक ldf
फ़ाइल। अन्यथा आपको निम्न के समान एक त्रुटि संदेश मिलता है:
अब, आगे बढ़ने का एक तरीका है, भले ही आपके पास केवल mdf
. हो फ़ाइल। मान लें कि आपके पास mdf
है फ़ाइल जिसे SQL सर्वर से ठीक से अलग किया गया था, आपको mdf
. संलग्न करने में सक्षम होना चाहिए निम्न सिंटैक्स का उपयोग करके लॉग फ़ाइल के बिना फ़ाइल:
CREATE DATABASE YAFnet ON (FILENAME = N'C:\sql_data\YAFnet.mdf')
FOR ATTACH_REBUILD_LOG;
हालांकि, ऐसा लगता है कि आपके मामले में, फ़ाइल को SQL सर्वर से ठीक से अलग नहीं किया गया था:
कई संभावित स्पष्टीकरण हैं, जिनमें त्रुटि संदेश में उल्लिखित स्पष्टीकरण शामिल हैं। शायद इसे कुछ अमान्य SAN छाया से पुनर्प्राप्त किया गया था, या केवल पढ़ने के दौरान अलग किया गया था, या SQL सर्वर या अंतर्निहित सिस्टम क्रैश होने के बाद पुनर्प्राप्त किया गया था, या प्रतिलिपि/डाउनलोड के दौरान दूषित हो गया था, या कौन जानता है कि और क्या है।
यह देखने के लिए कि क्या उचित बैकअप हैं, आपको Yaf के समर्थन, या उनके सेवा प्रदाता के समर्थन पर वापस जाना होगा उपलब्ध है या, इसके विफल होने पर, mdf
. की वैकल्पिक प्रतियां फ़ाइल। यह भी ध्यान रखें कि हम में से कोई भी वास्तव में नहीं जानता कि Yaf क्या है या यह सत्यापित करने का कोई तरीका है कि आप किस Yaf के बारे में बात कर रहे हैं।
अन्यथा, ऐसा लगता है कि आप भाग्य से बाहर हैं, क्योंकि यह विशेष mdf
फ़ाइल अमान्य है और इस प्रकार आपको बहुत दूर नहीं जाने वाली है।
यही कारण है कि SQL सर्वर के लिए डिटैच/अटैच और/या ओ/एस स्तर फ़ाइल प्रतिलिपि दृष्टिकोण बैकअप (या उस मामले के लिए माइग्रेशन) के बहुत उपयोगी तरीके नहीं हैं। आपको एक उचित बैकअप/पुनर्प्राप्ति योजना की आवश्यकता है, जिसका अर्थ है कि डेटा हानि के लिए आपकी सहनशीलता के लिए उचित पूर्ण/अंतर/लॉग बैकअप लेना। और डेटाबेस को अलग करना लगभग हमेशा एक घटिया विचार होता है - जब mdf
. के साथ कुछ होता है डिटैच के दौरान या बाद में फ़ाइल, अब आपके पास ZERO . है आपके डेटाबेस की प्रतियां।