2013-03-01 5 views
5

मुझे SQL Server 2008 से SQL Server 2012 में फ़ाइल DATABASE.MDF फ़ाइल को कनवर्ट करने की आवश्यकता है?मैं SQL Server 2008 .mdf फ़ाइल को SQL Server 2012 में कैसे परिवर्तित करूं?

Database 'Sales' cannot be upgraded because its non-release version (539) is not supported by this version of SQL Server. You cannot open a database that is incompatible with this version of sqlservr.exe. You must re-create the database.
Could not open new database 'Sales'. CREATE DATABASE is aborted. (Microsoft SQL Server, Error: 950)

+2

आपको इसके रूपांतरण की आवश्यकता नहीं है। बस इसे सीधे SQL सर्वर 2012 पर पुनर्स्थापित करें। –

+0

आपके लिए धन्यवाद, लेकिन मुझे अगली त्रुटि है: डेटाबेस 'सेल्स' को अपग्रेड नहीं किया जा सकता क्योंकि इसका गैर-रिलीज़ संस्करण (539) SQL सर्वर के इस संस्करण द्वारा समर्थित नहीं है। आप ऐसे डेटाबेस को नहीं खोल सकते जो sqlservr.exe के इस संस्करण के साथ असंगत है। आपको डेटाबेस को फिर से बनाना होगा। नया डेटाबेस 'बिक्री' नहीं खोल सका। डाटाबेस तैयार करें निरस्त कर दिया गया है। (माइक्रोसॉफ्ट एसक्यूएल सर्वर, त्रुटि: 9 50) ..................और ईमानदारी से मुझे कई समाधान मिले, लेकिन सफलता के बिना – Andreu

+2

कृपया मेरे उत्तर का अपडेट देखें। आप जानते हैं कि SQL Server 2000 और SQL Server 2008 के बीच एक बड़ा अंतर है। आपकी समस्या का सटीक वर्णन नहीं करना बेकार सलाह का एक गुच्छा पाने और प्रक्रिया में लोगों के समय को बर्बाद करने का एक अच्छा तरीका है। –

उत्तर

15

बस इसे देते हैं और यह उन्नत किया जाएगा। आप एलडीएफ फ़ाइल नहीं है, तो (? और तुम क्यों एलडीएफ फ़ाइल नहीं है) आप हो सकता है का उपयोग करें:

CREATE DATABASE [DatabaseName] ON 
    (FILENAME = N'Drive:\path\file.mdf') 
    FOR ATTACH_REBUILD_LOG; 

कुछ चेतावनियां, बेशक ... हैं

  • देख रहा है क्योंकि आपके पास केवल .mdf फ़ाइल है, तो संभवतः आप एक कठोर जागरूकता के लिए हो सकते हैं। अगर फ़ाइल को SQL सर्वर से साफ़ रूप से अलग नहीं किया गया था, तो यह पुनः अनुलग्नक नहीं हो सकता है, और आपको उचित बैकअप (एक .mdf फ़ाइल नहीं) के लिए स्रोत सर्वर पर वापस जाना होगा। यह सब इस बात पर निर्भर करेगा कि आपको .mdf फ़ाइल कहां मिली है जिसे आप अपग्रेड करने का प्रयास कर रहे हैं।

File activation failure. The physical file name "..._log.LDF" may be incorrect.
The log cannot be rebuilt because the database was not cleanly shut down.
Msg 1813, Level 16, State 2, Line 1
Could not open new database 'DatabaseName'. CREATE DATABASE is aborted.

  • अगर अपने डेटाबेस 80 संगतता मोड में है, यह 90 के लिए उन्नत किया जाएगा यह कुछ काम कर कोड मतलब हो सकता है कर सकते हैं: अपने .mdf फ़ाइल सफाई से अलग नहीं कर रहा था, तो आप इस त्रुटि आ सकती है अचानक ब्रेक, जैसे *=/=* वाक्यविन्यास में शामिल हों।
  • यदि आपका डेटाबेस> 10 जीबी है और आप एक्सप्रेस (और शायद स्थानीय डीबी, कभी कोशिश नहीं की है) को जोड़ने का प्रयास करते हैं, तो अटैच विफल हो जाएगा (या शायद अनुलग्नक सफल हो जाएगा लेकिन पहले ऑटोग्रो में असफल हो जाएगा? इसका परीक्षण नहीं किया गया है) ।
  • यदि आपके डेटाबेस को 2008 एंटरप्राइज़/डेवलपर पर बनाया गया था, तो आपको भी समस्याएं होंगी और आपने केवल वहां उपलब्ध सुविधाओं का उपयोग किया है, और आप डेटाबेस को मानक या एक्सप्रेस संस्करणों में संलग्न करते हैं ...
  • ठीक है, आपके त्रुटि संदेश से, आप 2008 डेटाबेस को अटैच करने की कोशिश नहीं कर रहे हैं, बल्कि 2000 डेटाबेस भी। आप इसे सीधे SQL Server 2012 से संलग्न नहीं कर सकते हैं। आपको इसे पहले उस संस्करण में अपग्रेड करने के लिए SQL Server 2005, 2008 या 2008 R2 के किसी भी उदाहरण से अटैचमेंट करने की आवश्यकता होगी, और उसके बाद इसे वापस ले लें और इसे SQL Server 2012 में पुनर्स्थापित करें।

Fwiw, एक बहुत, एक से दूसरे उदाहरण से एक डेटाबेस हिलाने की बहुत, बहुत सुरक्षित तरीका BACKUP/RESTORE (कारण उपयोग कर रहा है कि अगर आपके बैकअप विफल रहता है, तो आप अभी भी डेटाबेस की एक प्रति है है - अगर आप डेटाबेस को अलग करें, और कुछ गलत हो जाता है, आपके पास शून्य प्रतियां हैं)। हालांकि ऊपर दिए गए कुछ मुद्दे अभी भी इस सुरक्षित दृष्टिकोण के साथ भी लागू हो सकते हैं।

+0

जानकारी के लिए धन्यवाद .... और अब .. नया डेटाबेस 'बिक्री' नहीं खोल सका। डाटाबेस तैयार करें निरस्त कर दिया गया है। संदेश 950, स्तर 20, राज्य 1, रेखा 1 डेटाबेस 'बिक्री' को अपग्रेड नहीं किया जा सकता है क्योंकि इसका गैर-रिलीज़ संस्करण (539) SQL सर्वर के इस संस्करण द्वारा समर्थित नहीं है। आप ऐसे डेटाबेस को नहीं खोल सकते जो sqlservr.exe के इस संस्करण के साथ असंगत है। आपको डेटाबेस को फिर से बनाना होगा। समस्या का समाधान कैसे हो सकता है? – Andreu

+3

क्या आपने * मेरे अपडेट * को पढ़ा था, अंतिम बुलेट बिंदु जो 'ओके' से शुरू होता है? आप *** इस डेटाबेस को SQL Server 2012 *** से संलग्न नहीं कर सकते हैं। आपको इसे 2005, 2008 या 2008 आर 2 * पहले * से संलग्न करने की आवश्यकता है, फिर इसे वापस लें और इसे 2012 में पुनर्स्थापित करें। कोशिश करना बंद करें। अन्य विधियों में से कोई भी काम नहीं करेगा - यह जानबूझकर SQL सर्वर द्वारा अवरुद्ध है। –

+0

धन्यवाद, मैं समस्या हल हो, बस ठीक बात करने के लिए .. मैं माफी माँगता हूँ मैं इतने सारे विकल्प की कोशिश की थी और कम समय और बहुत दबाव था, लेकिन मैं इसके बिना आपकी मदद के समाधान नहीं किया होता: बैकअप/ – Andreu

2

ओपी को अपने डीबी प्रकार के बारे में गलत माना गया है। SQL सर्वर का संस्करण 539 2008 नहीं है लेकिन SQL Server 2000 है। इस धागे को देखें: SQL Server file version number: where can I find a reference?

मैंने SQL Server 2012 डीबी को SQL सर्वर 2012 डीबी को अटैच करने/पुनर्स्थापित करने का प्रयास करने में एक ही त्रुटि संदेश चलाया है। शायद इसके चारों ओर एक रास्ता था, लेकिन इसके बजाय मैंने पहले SQL Server 2008 R2, और फिर SQL Server 2012 में कनवर्ट किया था। यह किसी भी परेशानी के साथ निष्पादित नहीं हुआ था।

+0

कैसे किया बहाल आप इसे 2012 संस्करण में परिवर्तित करते हैं। क्या कोई उपकरण है? – yogihosting

+0

असल में मुझे ऑफ-हाथ याद नहीं है अगर मैं .bak से पुनर्स्थापित किया गया था या बस डेटाबेस को अटैचिंग और अलग कर रहा था। मेरे पास मेरी मशीन पर 2008R2 और 2012 दोनों उदाहरण थे, इसलिए मैंने 2008 के उदाहरण में बस संलग्न/बहाल किया, फिर अलग/बैक-अप और 2012 के उदाहरण में संलग्न/पुनर्स्थापित किया गया। – qianlong

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