SQL सर्वर किसी त्रुटि में बैकअप परिणाम पुनर्स्थापित करता है


15

मेरे पास एक डेटाबेस है dev (SQL Server 2005 विंडोज सर्वर 2008 पर) जिसे मुझे उत्पादों को स्थानांतरित करने की आवश्यकता है (SQL Server 2000 विंडोज सर्वर 2003 पर)। मेरी प्रक्रिया इस प्रकार है:

  1. देव के लिए लॉगिन करें, SQL सर्वर प्रबंधन स्टूडियो खोलें
  2. डेटाबेस पर राइट क्लिक करें | कार्य | बैकअप। सभी डिफ़ॉल्ट विकल्प (पूर्ण बैकअप आदि) रखें
  3. स्थानीय रूप से ठेस (कोई नेटवर्क ड्राइव) के लिए .bak फ़ाइल को स्थानांतरित करें, ठेस के लिए लॉगिन करें, SQL सर्वर एंटरप्राइज़ प्रबंधक खोलें।
  4. राइट क्लिक डेटाबेस डेटाबेस | सभी कार्य | डेटाबेस पुनर्स्थापित करें।
  5. डेटाबेस के समान नाम को प्रतिबिंबित करने के लिए डेटाबेस के रूप में पुनर्स्थापना बदलें।
  6. रेडियो बटन 'डिवाइस से' पर क्लिक करें। 'डिवाइस चुनें' पर क्लिक करें
  7. पुनर्स्थापना पर क्लिक करें: जोड़ें ..., .bak फ़ाइल में ब्राउज़ करें (छोटा - केवल 6mb)

अब मैं डेटाबेस को पुनर्स्थापित करने के लिए तैयार हूं, इसलिए मैं ठीक पर क्लिक करता हूं और निम्नलिखित त्रुटि प्राप्त करता हूं:

"डिवाइस पर मीडिया परिवार 'E: ... bak' गलत तरीके से बना है। SQL सर्वर इस मीडिया परिवार को संसाधित नहीं कर सकता है। अन्य कारण असामान्य रूप से समाप्त हो रहे हैं।"

यह त्रुटि तत्काल है।

मैंने इसके कुछ अलग-अलग रूपों की कोशिश की है - डीबी को देव मशीन में एक अलग डीबी नाम और लॉग फाइल नाम (जहां यह उत्पन्न हुआ) के साथ बहाल करना, पहले फ़ाइलों के लिए एक ही भौतिक पथ के साथ एक खाली डेटाबेस बनाना और उस पर पुनर्स्थापित करने का प्रयास करना, कुछ अलग .bak फाइलें बनाना और उन्हें ठेस पहुंचाने से पहले यह सुनिश्चित करना कि वे सत्यापित हैं। मैं एक तथ्य के लिए जानता हूँ .Mdf और .ldf फ़ाइलों के लिए निर्देशिका ठेस पर मौजूद है, हालाँकि फाइलें खुद मौजूद नहीं हैं। यदि, इससे पहले कि मैं पुनर्स्थापित करने के लिए ठीक क्लिक करूं, मुझे निम्न त्रुटि मिलने के बजाय विकल्प टैब पर जाएं:

3241 त्रुटि: डिवाइस 'E: ... bak' पर मीडिया परिवार गलत तरीके से बनता है। SQL सर्वर इस मीडिया परिवार को संसाधित नहीं कर सकता है। RESTORE FILELIST असामान्य रूप से समाप्त हो रही है।

किसी के पास कोई उज्ज्वल विचार है?


मैं सहमत हूं, बस इस पर एक दिन बिताया और अपना समय बर्बाद कर दिया, यह मेरे मामले में एक पिछड़े हमदर्दी मुद्दे, 2k8 R2 से 2k5 की तरह लगता है।

जवाबों:


7

MSSQL2008 में बैकअप हेडर MSSQL2005 में उन लोगों की तुलना में अलग हैं, जो आपकी समस्या का स्रोत है। बैकअप-रिस्टोर प्रतिमान के बजाय DB निर्यात करने का प्रयास करें, या अपने DEV सर्वर पर MSSQL2008 सेट करें।


4

जैसा कि माइक डिम्मिक कहता है - SQL 2000 SQL 2005 बैकअप को पहचान नहीं पाएगा (जैसे Word 2000 2007 की DOCX फ़ाइलों को नहीं पहचान सकेगा)। इसलिए आपको अपने डेटा को SQL स्क्रिप्ट जैसे किसी सामान्य सामान्य भाजक प्रारूप में माइग्रेट करना होगा। डेटाबेस प्रकाशन विज़ार्ड का प्रयास करें जो SQL सर्वर होस्टिंग टूलकिट का हिस्सा है जो स्कीमा और डेटा दोनों के लिए एक एकल SQL फ़ाइल बनाता है।


1
यह जांचना महत्वपूर्ण है कि क्या आपके पास SqlExpress स्थापित है (आपके पास यह स्थापित किए बिना हो सकता है कि आपके पास यह है)। गलती से SqlExpress में लॉग इन करना और फिर घबराहट करना बहुत आसान है क्योंकि यह आपको 2008 के डेटाबेस को बहाल नहीं करने देगा। संभवतः यह त्रुटि प्राप्त करने का एक बहुत ही सामान्य कारण है।
साइमन

2

आप SQL सर्वर परिवार, यानी 2000 से 2005 या 2008 में बैकअप को आगे बढ़ा सकते हैं, लेकिन पीछे नहीं: आप SQL Server 2005 बैकअप को SQL Server 2000 पर पुनर्स्थापित नहीं कर सकते।


1

जब आप पुनर्स्थापित करने का प्रयास करते हैं तो फ़ाइल को बनाए रखने से अनुमतियाँ जारी करना संभव है। उसी नाम के साथ लक्ष्य पर एक नया डेटाबेस बनाने का प्रयास करें जिसे आप चाहते हैं और फिर इसके शीर्ष पर पुनर्स्थापित कर रहे हैं।

इसके अलावा, यदि आप बाह्य हार्ड ड्राइव से बैकअप को पुनर्स्थापित करने का प्रयास कर रहे हैं या एक नेटवर्क साझाकरण को पुनर्स्थापित करने का प्रयास करने से पहले बैकअप फ़ाइल को स्थानीय मशीन पर कॉपी करने का प्रयास करें।


1

डिफ़ॉल्ट रूप से SQL Server 2005 से दो ऑब्जेक्ट खोजकर्ता हैं। मुझे लगता है कि आप सर्वर / sqlexpress ऑब्जेक्ट पर कोशिश कर रहे हैं। किसी दूसरे को पुनर्स्थापित करने का प्रयास करें।


1

(राहत मिली।) आह, यह समस्या है।

मेरे पास SQL ​​Server 2008 SP1 एक दूरस्थ पीसी पर चल रहा है। मैंने डेटाबेस का बैकअप लिया है, लेकिन मुझे नहीं मिला .bak फ़ाइल से पुनर्स्थापित करने के लिए SQL Server 2008 की स्थानीय प्रतिलिपि ।

जैसा कि [Yini] कहता है, यह SQL Server 2008 की मेरी कॉपी के नीचे था जो मेरा था SQL सर्वर 2005 उदाहरण के बजाय, मेरे स्थानीय पीसी पर अपने SQL सर्वर 2005 उदाहरण को । प्रतिभा।

और मैं पूरी तरह से [Yini] से सहमत हूँ - पर्याप्त रूप से, आप 2005 उदाहरण में SQL Server 2008 बैकअप को पुनर्स्थापित नहीं कर सकते, लेकिन Microsoft कम से कम, हमें एक सभ्य त्रुटि संदेश दे सकता है।

"डिवाइस पर मीडिया परिवार 'D: \ DatabaseBackup_21_02_2011.bak' गलत तरीके से बनता है। SQL सर्वर इस मीडिया परिवार को संसाधित नहीं कर सकता है।"

मेरा बैकअप गलत तरीके से नहीं बनाया गया था । यह सिर्फ एक में बहाल नहीं किया जा सकता हैजब मैं SQL Server 2008 SP1 चला रहा हूँ, तब भी इसे SQL Server 2005 आवृत्ति

क्या वास्तव में यह एक त्रुटि संदेश में डालना मुश्किल है ............?


0

कुछ विचार:

  • अनुमानित करें कि आप किस डेटाबेस को पुनर्स्थापित कर रहे हैं? इस त्रुटि पर
    एकमात्र समर्थन आलेख SQL 2000 के लिए है और बड़ी लॉग फ़ाइलों के बारे में बात करता है। जब आप SQL 2000 पर नहीं होते हैं, तो यह लॉग के आकार को कम करने की कोशिश करने में मदद कर सकता है यदि वे विशेष रूप से बड़े हैं।

  • क्या आप अपने देव सर्वर पर डेटाबेस को पुनर्स्थापित करने में सक्षम हैं (एक अलग डीबी नाम के रूप में, विभिन्न फ़ाइलों के लिए)? यह साबित होगा कि SQL 2005 का संबंध है कि अभी तक फ़ाइल ही ठीक है या नहीं।

  • क्या आप उस देव सर्वर से किसी अन्य डेटाबेस को उत्पादन में पुनर्स्थापित करने में सक्षम हैं?


0

हे सब लोग, जैसा कि माइक ने सुझाव दिया है कि मैं डेटाबेस प्रकाशन विज़ार्ड की सिफारिश करूंगा, यह एक सुंदर काम करता है।

यहाँ एक वैकल्पिक हल है जिसे मैंने शुरू में इस्तेमाल किया था कि मैं पूरी तरह से सुझाव नहीं दूंगा - यह थोड़ा यहूदी बस्ती है


1) db को प्रोडक्ट पर बनाएँ, उचित अधिकारों के साथ db यूजर बनाएँ, अपने फ़ायरवॉल पर पोर्ट खोलें जो रिमोट एक्सेस की अनुमति देता है
2) SQL Server मैनेजमेंट स्टूडियो में देव से, db -> कार्य -> ​​निर्यात डेटा पर राइट क्लिक करें। गंतव्य का चयन करते समय, पोर्ट xxx.xxx.xxx.xxx, 1764 को निर्दिष्ट करना सुनिश्चित करें।
3) हस्तांतरण के लिए सभी तालिकाओं का चयन करें, अगले 100 बार क्लिक करें, और आप कर रहे हैं।

चेतावनी: यह संग्रहीत कार्यविधियों की नकल नहीं करता है।
चेतावनी: यह इंट कॉलम के लिए पहचान की नकल नहीं करता है

अद्यतन: ऐसा लगता है कि आप 2005 से 2000 तक नहीं जा सकते हैं। मुझे निम्नलिखित पोस्ट लिंक टेक्स्ट मिला - ऐसा लगता है कि आप ऊपर मेरे तरीकों का उपयोग कर सकते हैं, लेकिन आप सभी ऑब्जेक्ट्स को स्क्रिप्ट करना चाहते हैं और फिर 2000 को चला सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.