बैकअप और कमांड लाइन से अपने SQL सर्वर डेटाबेस को पुनर्स्थापित करें
SQL सर्वर रखरखाव योजना का सबसे महत्वपूर्ण हिस्सा नियमित रूप से आपके डेटाबेस का बैकअप ले रहा है। किसी डेटाबेस का बैकअप लेने के लिए, आप बस डेटाबेस के संबंधित एमडीएफ और एलडीएफ फ़ाइलों को कॉपी नहीं कर सकते क्योंकि SQL सर्वर में इन पर लॉक है। इसके बजाय, आपको SQL सर्वर के माध्यम से एक वास्तविक बैकअप फ़ाइल बनाने की आवश्यकता है.
जबकि यह SQL प्रबंधन स्टूडियो के अंदर एक रखरखाव योजना विकसित करके किया जा सकता है, SQL सर्वर के मुक्त एक्सप्रेस संस्करण इस इंटरफ़ेस की पेशकश नहीं करते हैं। इसके चारों ओर काम करने के लिए, आप एक Windows व्यवस्थापक के रूप में लॉग इन करते हुए नीचे दिए गए कमांड को चलाकर आसानी से अपने डेटाबेस का बैकअप ले सकते हैं:
SqlCmd -E -S Server_Name -Q "BACKUP DATABASE [Name_of_Database] TO DISK =" X: PathToBackupLocation [Name_of_Database] .bak ""।
नीचे दिए गए उदाहरणों से मदद मिलेगी.
डिफ़ॉल्ट SQL सर्वर उदाहरण:
SqlCmd -E -S MyServer -Q "बैक डेट पर जाएं [MyDB] को DISK =" D: BackupsMyDB.bak ""
नामित SQL सर्वर आवृत्ति:
SqlCmd -E -S MyServerMyInstance -Q "BACKUP DATABASE [MyDB] को DISK =" D: BackupsMyDB.bak ""
उपरोक्त "MyDB" फ़ाइल की पूरी तरह से बैकअप बैकअप प्रतिलिपि बनाएँ "D: BackupsMyDB.bak" जो आपदा वसूली के लिए इस्तेमाल किया जा सकता है। बेशक, आप बैकअप स्थान को बदल सकते हैं और आपको जो कुछ भी ज़रूरत है उसे फ़ाइल कर सकते हैं, लेकिन सुनिश्चित करें कि आप एक फ़ोल्डर स्थान निर्दिष्ट करें जो स्थानीय मशीन पर मौजूद है। इस बैकअप फ़ाइल को तब टेप ड्राइव या किसी अन्य बाहरी बैकअप स्थान पर कॉपी किया जा सकता है.
एक सामान्य प्रश्न है "क्या मैप्ड ड्राइव या UNC लोकेशन पर एक बैकअप फाइल बनाई जा सकती है?" और त्वरित उत्तर है नहीं। इसका कारण यह है कि SQL सर्वर विंडोज सर्विस एक उपयोगकर्ता खाते के रूप में चलती है जिसकी केवल स्थानीय मशीन तक पहुंच है। आप जिस खाते में सेवा चलाते हैं उसे बदल सकते हैं, लेकिन सुरक्षा कारणों से यह बहुत हतोत्साहित करता है.
कमांड लाइन से एक डेटाबेस बैकअप बहाल करना
बैकअप फ़ाइल से डेटाबेस को पुनर्स्थापित करने के लिए, बस कमांड का उपयोग करें:
SqlCmd -E -S Server_Name -Q "पुनर्निवेश DATABASE [Name_of_Database] से DISK =" X: PathToBackupFile [File_Name] .bak "।
उदाहरण के लिए:
SqlCmd -E -S MyServer -Q "पुनर्व्याख्या DATABASE [MyDB] DISK से =" D: BackupsMyDB.bak ""
उपरोक्त कमांड बैकअप फ़ाइल "D: BackupsMyDB.bak" में संग्रहीत डेटा से "MyDB" का बैकअप पुनर्स्थापित करेगा। बैकअप फ़ाइल बनाए जाने के बाद से MyDB में किए गए किसी भी परिवर्तन को खो दिया जाएगा.
उपरोक्त कमांड का उपयोग करते समय याद रखने वाली एक महत्वपूर्ण बात यह है कि इसका उपयोग उसी SQL सर्वर पर करने का इरादा है जिससे संबंधित बैकअप फ़ाइल बनाई गई थी। एसक्यूएल बैकअप फाइलें 'पर्दे के पीछे की सूचनाओं को संग्रहीत करती हैं जो बैकअप फाइल में डेटा फ़ाइलों को कहाँ और कैसे नियंत्रित करती हैं। यदि आप किसी भिन्न SQL सर्वर से बैकअप को पुनर्स्थापित कर रहे हैं, तो बैकअप फ़ाइल में पथ स्थान आपके द्वारा पुनर्स्थापित किए जा रहे सर्वर से मेल नहीं खा सकते हैं और एक त्रुटि होगी। जबकि इसके आसपास काम किया जा सकता है, लेकिन SQL प्रबंधन स्टूडियो टूल का उपयोग करके किसी अन्य SQL सर्वर पर बनाए गए बैकअप को पुनर्स्थापित करना बहुत आसान है.
नोट: ऊपर दिए गए आदेश SQL 2005 और उच्चतर (किसी भी संस्करण) पर काम करेंगे। SQL 2000 और इससे पहले के लिए, 'SqlCmd' को 'oSql' से बदलें.