यहाँ कुछ रास्ते हैं जिनकी मैं जाँच करूँगा। इन सभी को न करें (उनमें से कुछ एक ही उद्देश्य को पूरा करने के लिए अलग-अलग तकनीकें हैं), लेकिन विचार करने योग्य हैं:
1. SQL त्रुटि लॉग सीधे जांच करें
SQL त्रुटि लॉग वाले फ़ोल्डर में सीधे ब्राउज़ करें और ERRORLOG
SQL उदाहरण प्रारंभ नहीं होगा पर अधिक विवरण प्राप्त करने के लिए सबसे हाल ही में नोटपैड में लोड करें । शायद आप पाएंगे कि समस्या मास्टर डेटाबेस के साथ बिल्कुल नहीं है।
2. एकल-उपयोगकर्ता मोड में उदाहरण शुरू करने का प्रयास करें
यहां (एकल उपयोगकर्ता मोड) और (न्यूनतम कॉन्फ़िगरेशन मोड) सहित SQL सर्वर के लिए स्टार्टअप विकल्पों की एक पूरी सूची है । अन्य विकल्प आपको मास्टर डेटाबेस के लिए पथ निर्दिष्ट करने की अनुमति देते हैं, यदि यह समस्या है।-m
-f
यदि आप उदाहरण प्राप्त करने में सक्षम हैं, तो मास्टर डेटाबेस को पुनर्स्थापित करने के लिए आपके द्वारा लिंक किए गए MSDN लेख में दिए गए चरणों का पालन करें , या थॉमस ला रॉक द्वारा यह विस्तृत वॉकथ्रू ।
यदि कोई अन्य एप्लिकेशन आपके द्वारा किए जाने से पहले एकल उपयोगकर्ता कनेक्शन को हमेशा पकड़ लेता है, तो पहले SQL एजेंट को अक्षम करें ताकि यह शुरू न हो। दूसरा, आवेदन नाम निर्दिष्ट करने के लिए पैरामीटर का उपयोग करने के लिए इस प्रश्न पर विचार देखें-m"Application Name"
।
3. master
किसी अन्य उदाहरण के लिए पुनर्स्थापित करें और इसकी फ़ाइलों की प्रतिलिपि बनाएँ
मुझे केवल इस अनिर्दिष्ट तकनीक का एक और उल्लेख मिला है , लेकिन मैंने इसे पिछले सप्ताहांत में सफलतापूर्वक उपयोग किया है, इसलिए यह एक कोशिश के लायक हो सकता है।
यदि आप एकल-उपयोगकर्ता मोड में इंस्टेंस को प्रारंभ नहीं कर सकते हैं, लेकिन आपके पास एक और SQL इंस्टेंस है जो सटीक रिलीज़ और बिल्ड को चला रहा है , तो अपने ज्ञात सर्वर से अंतिम ज्ञात अच्छे मास्टर डेटाबेस बैकअप को अन्य इंस्टेंस पर पुनर्स्थापित करने का प्रयास करें:
- एक अलग नाम के रूप में पुनर्स्थापित करें, निश्चित रूप से (
master_please_god_let_this_work
), WITH MOVE
ताकि आप master
अपने अच्छे सर्वर पर ओवरराइट न करें
- पुनर्स्थापित करें
WITH NORECOVERY
। यह सुनिश्चित नहीं है कि यह आवश्यक है, लेकिन मुझे बेहतर महसूस हुआ कि मुझे पता था कि अन्य सर्वर बहाल मास्टर में कुछ भी बदलने नहीं जा रहा है
- इसे ऑफ़लाइन पर सेट करें:
ALTER DATABASE [master_please_god_let_this_work] SET OFFLINE
- मृत सर्वर के लिए अच्छे सर्वर से बहाल एमडीएफ और एलडीएफ फाइलें कॉपी करें
- नाम बदलें
master.mdf
और mastlog.ldf
अपने बहाल संस्करणों के साथ बुरा मास्टर फ़ाइलों को प्रतिस्थापित करने के लिए आवश्यक के रूप में फाइल
- अपनी उंगलियों को पार करें और उदाहरण शुरू करें
- वैकल्पिक: पुनर्जीवित सर्वर पर मास्टर की एक नई पुनर्स्थापना करें। यह निश्चित नहीं है कि यह आवश्यक है, क्योंकि हम बहुत सावधान थे कि इसे बदलना नहीं है
master
।
4. सिस्टम डेटाबेस का पुनर्निर्माण करें
यदि आपके पास समान संस्करण चलाने वाला कोई अन्य उदाहरण नहीं है, या यदि आप # 3 में सूचीबद्ध अनिर्दिष्ट प्रक्रिया का उपयोग करने में सहज नहीं हैं, या यदि आपके पास बैकअप नहीं है master
( तो आपके पास बैकअप क्यों नहीं है? ); आप मूल स्थापित डिस्क से SQL सिस्टम डेटाबेस का पुनर्निर्माण कर सकते हैं :
Setup.exe /ACTION=REBUILDDATABASE /...
जब यह पूरा हो जाए, तो आप master
अपने पिछले अच्छे बैकअप से पुनर्स्थापित करने के लिए पहले से जुड़े चरणों का पालन कर सकते हैं । आपको msdb
अपनी सभी नौकरियों, नौकरी अनुसूची और नौकरी के इतिहास को बनाए रखने के लिए हाल ही में बैकअप को पुनर्स्थापित करने की भी आवश्यकता होगी ।
5. सभी USER डेटाबेस को एक नए (या मौजूदा) SQL उदाहरण में पुनर्स्थापित करें
यदि आपको पहले से चल रहा एक और मौजूदा उदाहरण (उचित SQL संस्करण, पर्याप्त डिस्क स्थान) मिल गया है, तो मैं संभवतः सबसे हाल के बैकअप से डेटाबेस पुनर्स्थापना शुरू करूंगा, जबकि मैं अन्य समस्या निवारण चरणों पर काम कर रहा हूं, बस मुझे उनकी आवश्यकता है।
यदि आपके नए (या पुनः इंस्टॉल किए गए) इंस्टेंस में एक ही डिस्क का उपयोग होता है, तो उन्हें बस नए डेटाबेस के रूप में संलग्न करना बहुत तेज़ है:
CREATE DATABASE foo
ON (FILENAME = 'D:\data\foo.mdf'),
(FILENAME = 'D:\data\foo_log.ldf')
FOR ATTACH;
6. किसी भी परिवर्तन को फिर से करें master
एक बार जब आप सफलतापूर्वक master
(उपरोक्त तकनीकों में से किसी के माध्यम से) पुनर्स्थापित करते हैं, तो आपको किसी भी परिवर्तन की जांच करने की आवश्यकता होती है जो खो गए होंगे, यदि वे बैकअप के बाद ही बनाए गए थे:
- सुरक्षा में बदलाव
- नए डेटाबेस (फाइलें अभी भी डिस्क पर होंगी, बस उन्हें संलग्न करें)
- सर्वर-वाइड सेटिंग्स
इन्हें खोजने का कोई जादुई तरीका नहीं है, यदि आपके पास एक है, तो आपको इस प्रकार के परिवर्तनों के लिए अपनी खुद की कंपनी के दस्तावेज़ निशान पर वापस जाना होगा।