2012-11-15 15 views
11

मैंने बहुत अधिक SQL नहीं किया है और अभी भी इसके लिए बहुत नया हूं, इसलिए कृपया एक मूल प्रश्न क्या है, क्षमा करें।किसी अन्य मशीन पर .bak फ़ाइल से डेटाबेस को पुनर्स्थापित करना

मुझे अपने डेटाबेस का बैकअप लेने के लिए एक SQL नौकरी बनाने, अन्य मशीनों पर .baks स्टोर करने और फिर उन्हें दूसरे सर्वर पर पुनर्स्थापित करने के लिए कहा गया है। मैं थोड़ा सा शोध कर रहा हूं और एसएसएमएस के साथ खेल रहा हूं और शेयर को स्थापित करके शेयर स्थान पर बैकअप नौकरी चलाकर डेटाबेस को अपनी व्यक्तिगत मशीन पर बैक-अप कर चुका हूं। अब मैं .bak फ़ाइल को पुनर्स्थापित करके एक नया डेटाबेस (उसी सर्वर पर बैक-एड अप) बनाने की कोशिश कर रहा हूं (लेकिन डेटाबेस दे रहा हूं, मैं एक नया नाम बनाने की कोशिश कर रहा हूं और क्या नहीं) लेकिन मैं असमर्थ हूं शेयर से इसे बहाल करने के लिए, जैसा कि मैंने इसे बैक अप करते समय किया था/मुझे नहीं पता कि अन्य नेटवर्क स्थानों को कैसे निर्दिष्ट किया जाए और जब मैं फ़ाइल का पता लगाने की कोशिश करता हूं तो बस सर्वर के सी ड्राइव को ब्राउज़ कर रहा हूं।

अभी के लिए, मैं बस इसे खोलने और प्राप्त करने के लिए अंतर्निहित विज़ार्ड का उपयोग कर रहा हूं (ओपन एसएसएमएस -> सर्वर से कनेक्ट करें -> डेटाबेस पर राइट क्लिक करें -> डेटाबेस को पुनर्स्थापित करें और फिर डिवाइस से चुनें और फ़ाइल ढूंढने के लिए ब्राउज़ करें)।

यह अंतिम प्रक्रिया नहीं है, बस मैं यह काम करने के तरीके से पकड़ने की कोशिश कर रहा हूं। जैसा कि मैंने कहा था, अंततः विचार है कि डीबी को सर्वर 1 से एक .bak पर बैकअप लें, मेरी व्यक्तिगत मशीन और फिर सर्वर 2 (विभिन्न नेटवर्क, अलग-अलग शहर) पर डीबी को पुनर्स्थापित करने के लिए और शायद , प्रत्येक बार विज़ार्ड का उपयोग करने के बजाय एसक्यूएल कमांड की एक श्रृंखला के साथ (कुछ डीबी हैं जो अंत में, बैक अप लेने की आवश्यकता होगी)।

मेरी संभवतः, संभवतः, काफी तैयार और ठोस प्रश्न के लिए माफी माँगती है - अनिवार्य रूप से, मुझे यह जानने की ज़रूरत है कि मैं एक अलग मशीन पर एसबीएमएस में एसबीएमएस में डीबी कैसे पुनर्स्थापित कर सकता हूं? बहुत धन्यवाद

+1

[SQL सर्वर में डेटाबेस में आयात .bak फ़ाइल का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/1 535 9 14/आयात-बाक-फ़ाइल-टू-ए-डेटाबेस-इन-एसक्यूएल-सर्वर) –

+0

एक विस्तृत ब्लॉग: http://sforsuresh.in/import-bak-file-microsoft-sql-server-2012/ –

उत्तर

30

आप निम्न स्क्रिप्ट जैसे कुछ का उपयोग कर सकते हैं। यह फाइल सिस्टम से डेटाबेस को पुनर्स्थापित करता है, और यह "MyDB" के नाम से मौजूदा डेटाबेस को ओवरराइट करता है, जिससे प्रक्रिया में आपकी पसंद के नए स्थानों पर फ़ाइलों को स्थानांतरित किया जाता है।

 
RESTORE DATABASE 
    MyDB 
FROM DISK = '\\MyShare\MyBackup.bak' 
WITH 
    MOVE 'DataFile' TO 'D:\myNewDBLocation\DataFile.mdf', 
    MOVE 'LogFile' TO 'E:\\myNewDBLocation\LogFile.ldf' 
, REPLACE 

आप llogical फ़ाइलों का नाम पता कर सकते हैं (ऊपर में, उन निम्नलिखित चलाकर DataFile और LogFile कहा जाता है: विभिन्न विकल्प और मापदंडों के बारे में

 
RESTORE FILELISTONLY 
FROM DISK = '\\MyShare\MyBackup.bak' 

अतिरिक्त जानकारी:

RESTORE (Transact-SQL)

+0

के लिए धन्यवाद तेज़ उत्तर कुछ प्रश्न, 1) डेटाफाइल और लॉगफाइल क्या हैं? यदि डेटाबेस को उसी सर्वर/स्थान पर पुनर्स्थापित करना है (बस जब तक मैं इसके साथ पकड़ने के लिए जा रहा हूं, मैं वास्तव में दूसरे सर्वर तक पहुंच नहीं लेना चाहता हूं, जब तक कि मुझे वास्तव में आवश्यकता न हो) क्या उन्हें अभी भी स्थानांतरित करने की आवश्यकता होगी? 2) मैंने के साथ पुनर्स्थापित करने का प्रयास किया है, डिस्कस्ट से डाटाबेस = '\\ MyShare \ MyDir \ backup.bak REPLACE' के साथ पुनर्स्थापित करें, लेकिन त्रुटि प्राप्त हो रही है: "मीडिया सेट में 2 मीडिया परिवार हैं लेकिन केवल 1 प्रदान किए जाते हैं। सभी सदस्यों को प्रदान किया जाना चाहिए। " जिसे मैं समझने का दावा नहीं कर सकता, किसी भी मदद की बहुत सराहना की जाती है। – cprlkleg

+0

डेटाफ़ाइल फ़ाइलें हैं जिनमें वास्तविक डेटा होता है। लॉजिफ़ल लेनदेन लॉग लेनदेन के लॉगफाइल की तरह है जिसका उपयोग किसी दुर्घटना के मामले में डेटा को किसी विशिष्ट बिंदु पर पुनर्प्राप्त करने के लिए किया जा सकता है। रीस्टोर FILELISTONLY कमांड को चलाने का प्रयास करें यह पता लगाने के लिए कि वास्तव में डेटाबेस द्वारा कौन सी फाइलों का उपयोग किया जाता है। और हाँ, उसी सर्वर पर डेटाबेस को पुनर्स्थापित करते समय, आपको फ़ाइलों को स्थानांतरित करने की आवश्यकता होगी। अन्यथा नया डेटाबेस उसी डेटाबेस को पहले डेटाबेस के रूप में उपयोग करने का प्रयास करेगा, जो संभव नहीं होगा। – SchmitzIT

+1

बहुत धन्यवाद। अब ऊपर और चल रहा हूं :-) ऊपर उठ जाएगा, लेकिन अभी तक नहीं कर सकता। – cprlkleg

संबंधित मुद्दे