कैसे एक नेटवर्क शेयर करने के लिए एसक्यूएल डेटाबेस बैकअप करने के लिए
SQL डेटाबेस का बैकअप नियमित रूप से लेना चाहिए। हमारे पास पहले से ही कवर किए गए तरीके हैं जो आपके सभी SQL सर्वर डेटाबेस को स्थानीय हार्ड ड्राइव में आसानी से बैकअप दे सकते हैं, लेकिन यह ड्राइव और / या सिस्टम विफलता के खिलाफ सुरक्षा नहीं करता है। इस प्रकार की आपदा से सुरक्षा की एक अतिरिक्त परत के रूप में, आप नेटवर्क बैकअप पर अपने बैकअप की प्रतिलिपि बना सकते हैं या सीधे बना सकते हैं.
स्थानीय रूप से बैकअप और फिर नेटवर्क शेयर पर कॉपी करें
इस कार्य को पूरा करने का पसंदीदा और सबसे सीधा तरीका बस एक डेटाबेस का स्थानीय बैकअप बनाना है और फिर संबंधित बैकअप फ़ाइल को एक नेटवर्क शेयर पर कॉपी करना है। आप एक बैच स्क्रिप्ट बनाकर ऐसा कर सकते हैं जो इस तरह दिखता है:
SET LocalFolder = C: प्रोग्राम FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q "बैकअप डेटाबेस MyDB डिस्क के लिए ="% LocalFolder% MyDB.bak "
XCopy "% LocalFolder% MyDB.bak" "192.168.16.55BackupDat डेटाबेस" / Z / V
DEL "% LocalFolder% MyDB.bak"
यह स्क्रिप्ट निम्नलिखित कार्य करता है (लाइन द्वारा लाइन):
- स्थानीय SQL बैकअप निर्देशिका के लिए एक चर सेट करता है.
- स्थानीय SQL बैकअप निर्देशिका के लिए MyDB (Windows प्रमाणीकरण का उपयोग करके) का SQL बैकअप बनाता है.
- नेटवर्क बैकअप के लिए स्थानीय बैकअप फ़ाइल की प्रतिलिपि बनाता है.
- स्थानीय बैकअप फ़ाइल हटाता है.
फिर से, यह पसंदीदा तरीका है क्योंकि यह बॉक्स से बाहर काम करता है और बैकअप की विफलता की संभावना न्यूनतम होती है क्योंकि बैकअप एक स्थानीय डिस्क पर बनाया जाता है। हालाँकि, यदि आपके पास बैकअप फ़ाइलों की स्थानीय प्रतियां संग्रहीत करने के लिए पर्याप्त डिस्क स्थान नहीं है, तो यह क्रिया विफल हो जाएगी। इस घटना में, आपको अतिरिक्त डिस्क स्थान या बैकअप को सीधे नेटवर्क शेयर में जोड़ना होगा.
बैकअप सीधे एक नेटवर्क शेयर के लिए
आमतौर पर, जब आप कमांड का उपयोग करके सीधे नेटवर्क शेयर में बैकअप बनाने का प्रयास करते हैं जैसे:
SqlCmd -E -Q "बैकअप डेटाबेस MyDB डिस्क करने के लिए =" 192.168.16.55BackupDat डेटाबेसMyDB.bak ""
आपको अधिकतर इसकी तर्ज पर त्रुटि की संभावना होगी:
एमएसजी 3201, लेवल 16, स्टेट 1, सर्वर जेएफ, लाइन 1
बैकअप डिवाइस नहीं खोल सकता '\ 192.168.16.55BackupDat डेटाबेसMyDB.bak'। ऑपरेटिंग सिस्टम त्रुटि 5 (प्रवेश निषेध है।).
Msg 3013, लेवल 16, स्टेट 1, सर्वर JF, लाइन 1
BACKUP DATABASE असामान्य रूप से समाप्त हो रहा है.
यह त्रुटि इस तथ्य के बावजूद होती है कि आपने विंडोज ऑथेंटिकेशन (-ई स्विच) और विंडोज खाते का उपयोग करके विंडोज एक्सप्लोरर के माध्यम से फाइलों को साझा करने और कॉपी करने की क्षमता का उपयोग करते हुए SQL बैकअप कमांड चलाया था।.
SQL सर्वर सेवा के रूप में चल रहा है खाते की सीमा के भीतर निष्पादित किया गया है, क्योंकि यह क्रिया विफल रहता है। जब आप अपने कंप्यूटर पर सेवाओं की सूची देखते हैं, तो सबसे अधिक संभावना है कि आप SQL सर्वर सेवा (लॉग ऑन एश कॉलम) के रूप में या तो स्थानीय सिस्टम या नेटवर्क सेवा देखेंगे जो सिस्टम खाते हैं जिनके पास नेटवर्क एक्सेस नहीं है.
हमारे सिस्टम पर नेटवर्क शेयर कमांड का बैकअप विफल हो जाता है क्योंकि हमारे पास स्थानीय सिस्टम के रूप में SQL सर्वर सेवा चल रही है, जो फिर से, किसी भी नेटवर्क संसाधनों के लिए नहीं मिल सकती है.
SQL को सीधे नेटवर्क शेयर में बैकअप की अनुमति देने के लिए, हमें SQL सर्वर सेवा को एक स्थानीय खाते के रूप में चलाना होगा जिसमें नेटवर्क संसाधनों तक पहुंच हो.
SQL सर्वर सेवा और लॉग ऑन टैब के गुणों को संपादित करें, एक वैकल्पिक खाते के रूप में चलाने के लिए सेवा को कॉन्फ़िगर करें जिसमें नेटवर्क एक्सेस अधिकार हैं.
जब आप ठीक पर क्लिक करते हैं, तो आपको एक संकेत मिलेगा कि सेवा के पुनरारंभ होने तक सेटिंग्स प्रभावी नहीं होंगी.
सेवा को पुनरारंभ करें.
सेवाओं की सूची को अब दिखाना चाहिए कि SQL सर्वर सेवा आपके द्वारा कॉन्फ़िगर किए गए खाते के रूप में चल रही है.
अब जब आप एक नेटवर्क शेयर पर सीधे बैकअप के लिए कमांड चलाते हैं:
SqlCmd -E -Q "बैकअप डेटाबेस MyDB डिस्क करने के लिए =" 192.168.16.55BackupDat डेटाबेसMyDB.bak ""
आपको एक सफलता संदेश देखना चाहिए:
डेटाबेस 'MyDB' के लिए 152 पेज की प्रक्रिया, फ़ाइल 1 पर 'MyDB' फ़ाइल.
डेटाबेस 'MyDB' के लिए 2 पेज संसाधित किए गए, फ़ाइल 1 पर 'MyDB_log' फ़ाइल.
बैकअट डेबएज ने 154 पृष्ठों को 0.503 सेकंड में सफलतापूर्वक संसाधित किया (2.493 एमबी / सेकंड).
नेटवर्क शेयर निर्देशिका में अब बैकअप फ़ाइल के साथ:
नेटवर्क शेयर विचार
यह नोट करना महत्वपूर्ण है कि बैकअप कमांड क्रेडेंशियल्स के लिए संकेत दिए बिना सीधे नेटवर्क शेयर से सीधे जुड़ने में सक्षम होने की उम्मीद करता है। जिस खाते को चलाने के लिए आपने SQL सर्वर सेवा को कॉन्फ़िगर किया है, उसमें नेटवर्क शेयर के साथ एक विश्वसनीय कनेक्शन होना चाहिए जहां संबंधित क्रेडेंशियल एक्सेस की अनुमति देता है, अन्यथा इस तरह की त्रुटि हो सकती है:
एमएसजी 3201, लेवल 16, स्टेट 1, सर्वर जेएफ, लाइन 1
बैकअप डिवाइस नहीं खोल सकता '\ 192.168.16.55BackupDat डेटाबेसMyDB.bak'। ऑपरेटिंग सिस्टम त्रुटि 1326 (लॉगऑन विफलता: अज्ञात उपयोगकर्ता नाम या खराब पासवर्ड।).
Msg 3013, लेवल 16, स्टेट 1, सर्वर JF, लाइन 1
BACKUP DATABASE असामान्य रूप से समाप्त हो रहा है.
यह त्रुटि इंगित करती है कि खाते का उपयोगकर्ता नाम और पासवर्ड नेटवर्क साझा द्वारा स्वीकार नहीं किया गया था और कमांड विफल हो गया था.
ध्यान में रखने के लिए एक और मुद्दा यह है कि बैकअप सीधे नेटवर्क संसाधन के लिए किया जाता है, इसलिए नेटवर्क कनेक्शन में कोई भी हिचकी आपके बैकअप को विफल कर सकती है। इस कारण से, आपको केवल उन नेटवर्क स्थानों का बैकअप लेना चाहिए जो स्थिर हैं (यानी शायद वीपीएन नहीं).
सुरक्षा निहितार्थ
जैसा कि पहले उल्लेख किया गया है, उस विधि का उपयोग करना जहां आप स्थानीय रूप से बैकअप लेते हैं और फिर नेटवर्क शेयर पर कॉपी करना पसंद करते हैं क्योंकि यह आपको SQL सेवा को केवल स्थानीय सिस्टम एक्सेस के साथ खाते के रूप में चलाने की अनुमति देता है.
वैकल्पिक खाते के रूप में सेवा को चलाकर आप संभावित सुरक्षा समस्याओं के लिए दरवाजा खोलते हैं। उदाहरण के लिए, एक दुर्भावनापूर्ण SQL स्क्रिप्ट वैकल्पिक खाते और नेटवर्क संसाधनों पर हमला कर सकती है। इसके अतिरिक्त, संबंधित खाते में कोई भी परिवर्तन (पासवर्ड में परिवर्तन / समाप्ति या विलोपन / खाते को अक्षम करना) के कारण SQL सर्वर सेवा प्रारंभ नहीं हो पाएगी.
यदि आप एक वैकल्पिक खाते का उपयोग करके अपने SQL सर्वर इंस्टेंस को चलाते हैं, तो इन बिंदुओं को ध्यान में रखना महत्वपूर्ण है। जबकि ये उचित कारण नहीं होने पर स्टॉपर्स नहीं दिखाते हैं, आपको अतिरिक्त हार्ड ड्राइव स्थान जोड़ने पर विचार करना चाहिए और फिर स्थानीय बैकअप लागू करना चाहिए और कॉपी करना होगा ताकि आप स्थानीय खाते का उपयोग करके SQL सेवा चला सकें।.