sql server - "कोई बैकअपसेट पुनर्स्थापित करने के लिए चयनित नहीं है" SQL सर्वर 2012




sql-server restore (12)

मेरे पास filestream सक्षम के साथ एक SQL सर्वर 2012 डेटाबेस है। हालांकि, जब मैं इसे बैकअप करता हूं और इसे किसी अन्य SQL Server 2012 इंस्टेंस (किसी अन्य मशीन पर) पुनर्स्थापित करने का प्रयास करता हूं, तो मुझे बस यह संदेश मिलता है कि:

पुनर्स्थापित करने के लिए कोई बैकअपसेट नहीं चुना गया।

अधिक स्पष्टीकरण की एक पंक्ति भी नहीं। यहाँ क्या गलत है?

Filestream के बिना हर दूसरे डेटाबेस ठीक है और सफलतापूर्वक बहाल किया जा सकता है। क्या यह filestream से संबंधित कुछ है? क्या मुझे हॉटफिक्स या ऐसा कुछ इंस्टॉल करना चाहिए।


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


एफवाईआई: मैंने पाया कि बहाल करते समय, मुझे एसएसएमएस में लॉगिन करने के लिए एक ही (SQL उपयोगकर्ता) प्रमाण-पत्रों का उपयोग करने की आवश्यकता थी। मैंने पहले Windows प्रमाणीकरण खाते का उपयोग करके पुनर्स्थापित करने का प्रयास किया था।


क्षमा करें, लेकिन मैंने अभी साइन अप किया है और एक टिप्पणी में शामिल नहीं किया जा सकता है, इसलिए बस टायलर फोर्सिथ के जवाब की प्रतिलिपि बनाएँ जो वास्तव में मेरे लिए काम करता है।

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

और स्पष्टीकरण के लिए, मैं 2008 के उदाहरण से 2012 तक बैकअप बहाल कर रहा हूं, विभिन्न मशीनें (प्रोड्यूशन बनाम स्थानीय देव)। बैकअप एक स्वचालित बैकअप है, इस प्रक्रिया को काम करने के लिए मुझे इसे मैन्युअल रूप से बनाने की आवश्यकता नहीं थी। बस अनुमतियों को बदलें (सभी स्थानीय देव मशीन के लिए सबसे आसान है) और एसएसएमएस अब बैकअप फ़ाइल को ठीक से पढ़ सकते हैं और मेरी स्थानीय देव मशीन पर पुनर्स्थापित कर सकते हैं।


चलते समय:

RESTORE DATABASE <YourDatabase> 
FROM DISK='<the path to your backup file>\<YourDatabase>.bak'

यह मुझे निम्नलिखित त्रुटि दी:

डिवाइस 'सी: \ NorthwindDB.bak' पर मीडिया परिवार गलत तरीके से गठित किया गया है। SQL सर्वर इस मीडिया परिवार को संसाधित नहीं कर सकता है। पुनर्स्थापना हेडर्नोन असामान्य रूप से समाप्त हो रहा है। (माइक्रोसॉफ्ट एसक्यूएल सर्वर, त्रुटि: 3241) ब्लॉकक्वाट

बाहर निकलता है आप एक उच्च SQL संस्करण से एक डीबी नहीं ले सकते हैं, भले ही संगतता स्तर दोनों स्रोत और गंतव्य डीबी पर समान हो। SQL संस्करण चलाने के लिए जांचें:

Select @@Version

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

इसलिए यदि आपको अभी भी अपने डेटा को निचले संस्करण एसक्यूएल में ले जाने की आवश्यकता है तो इसे जांचें।


मुझे वही त्रुटि संदेश मिला, भले ही मैं बैकअप और उसी मशीन पर पुनर्स्थापित करता हूं।

मुद्दा यहां से था: जब बैकअप, मेरे पास गंतव्य बॉक्स में 2 आइटम था।

तो फिक्स होगा: 'गंतव्य' बॉक्स में केवल 1 आइटम सुनिश्चित करें। यदि अन्य हैं तो सभी को हटा दें।


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


मेरे पास SQL ​​Server 2014 के साथ एक ही समस्या थी (प्रबंधन स्टूडियो उस फ़ोल्डर को नहीं देख सका जिसमें बैकअप फ़ाइल शेष थी, पुनर्स्थापित ऑपरेशन के लिए इसे ढूंढने का प्रयास करते समय)। इस धागे ने जवाब दिया जिसने मेरी समस्या हल की। उद्धरण:

SQL सर्वर सेवा खाता स्टार्ट-> नियंत्रण कक्ष-> व्यवस्थापकीय उपकरण-> सेवाओं द्वारा पाया जा सकता है। SQL सर्वर सेवा-> लॉग ऑन टैब पर डबल-क्लिक करें। आप या तो एक विशिष्ट खाते को परिभाषित करने के लिए "स्थानीय सिस्टम खाता" या "यह खाता" का उपयोग करेंगे। यदि आप स्थानीय सिस्टम खाते का उपयोग कर रहे हैं, तो आप बैकअप को संदर्भित नहीं कर पाएंगे जो सर्वर के लिए स्थानीय नहीं हैं। यदि, इसके बजाय, आपने खाते को उपयोग करने के लिए परिभाषित किया है, यह वह खाता है जिसके लिए बैकअप फ़ाइल स्थान तक पहुंच की आवश्यकता है। आपके व्यक्तिगत लॉगऑन का उपयोग कर बैकअप तक पहुंचने की आपकी क्षमता अप्रासंगिक है; यह SQL सर्वर खाता है जिसका प्रयोग किया जाता है, भले ही आप बैकअप शुरू कर रहे हों। आपके आईटी लोगों को यह निर्धारित करने में सक्षम होना चाहिए कि प्रत्येक खाते को कौन से अधिकार दिए गए हैं।

उम्मीद है कि किसी की मदद करता है।


मेरे मामले में (नया एसक्यूएल सर्वर स्थापित, नव निर्मित उपयोगकर्ता) मेरे उपयोगकर्ता को बस आवश्यक अनुमति नहीं थी। मैंने प्रबंधन स्टूडियो को sa के रूप में लॉग किया, फिर सुरक्षा / लॉग इन पर गया, मेरे उपयोगकर्ता नाम, गुणों पर राइट-क्लिक करें, फिर सर्वर भूमिका अनुभाग में मैंने sysadmin जांच की।


मेरे लिए यह एक उपयोगकर्ता विशेषाधिकार मुद्दा है। मैं sa उपयोगकर्ता के साथ लॉग इन और इसके काम ठीक है।


मेरे लिए समस्या थी। बीएके फ़ाइल सर्वर पर एक एन्क्रिप्टेड फ़ोल्डर में स्थित है। यहां तक ​​कि पूर्ण व्यवस्थापक अधिकारों के साथ, मैं फ़ाइल को पढ़ने के लिए एसएसएमएस कभी नहीं प्राप्त कर सकता था। एक अनएन्क्रिप्टेड फ़ोल्डर में .BAK को स्थानांतरित करने से मेरी समस्या हल हो गई। ध्यान दें कि फ़ाइल को स्थानांतरित करने के बाद आपको एन्क्रिप्शन को हटाने के लिए वास्तविक फ़ाइल पर गुणों को भी बदलना पड़ सकता है (राइट क्लिक, गुण, उन्नत, "डेटा सुरक्षित करने के लिए एन्क्रिप्ट सामग्री" अनचेक करें।


मेरे लिए, यह एक अनुमति मुद्दा था। मैंने स्थानीय उपयोगकर्ता खाते का उपयोग करके और मेरी कंपनियों के डोमेन में शामिल होने से पहले SQL सर्वर स्थापित किया। बाद में, मैंने अपने डोमेन खाते का उपयोग कर डेटाबेस को पुनर्स्थापित करने का प्रयास किया जिसमें SQL सर्वर डेटाबेस को पुनर्स्थापित करने के लिए आवश्यक अनुमतियां नहीं हैं। आपको अपने डोमेन खाते की अनुमति को ठीक करने और SQL सर्वर इंस्टेंस पर सिस्टम एडमिन अनुमति देने की आवश्यकता है।


मैंने सोचा कि मैं संस्करणों को मिश्रण करने के लिए पर्याप्त मूर्ख नहीं था - हालांकि, मुझे एहसास नहीं हुआ कि मेरे नए सर्वर पर, SQL सर्वर 2005 का उदाहरण पहले से ही SQLEXPRESS नाम से स्थापित किया गया था। एसएसएमएस 2012 में SQL सर्वर 2008 R2 का बैक अप डेटाबेस को SQLEXPRESS उदाहरण में पुनर्स्थापित करने का प्रयास करते समय, बैकअप सेट की सूची खाली थी।

आखिर में मुझे एहसास हुआ कि सर्वर पर SQLEXPRESS उदाहरण 2012 का उदाहरण नहीं था, लेकिन 2005. मैंने वास्तविक 2012 के उदाहरण (मेरे मामले में SQLEXPRESS2012 नामक) से डिस्कनेक्ट किया और कनेक्ट किया, और यह (जाहिर है) काम किया।





sql-server-2012