2009-11-16 14 views
5

पर पुनर्स्थापित करें मुझे SQL Server 2008 मशीन से SQL Server 2000 मशीन पर एक संपूर्ण डेटाबेस ले जाना है।SQL सर्वर 2000 डेटाबेस को SQL Server 2000

मैंने प्रबंधन स्टूडियो 2008 का उपयोग करके बैकअप बनाया है, इसे 2000 बॉक्स की हार्ड ड्राइव पर कॉपी किया है, और प्रबंधन स्टूडियो 2008 के साथ, मैं 2000 बॉक्स में रीस्टोर डेटाबेस चुनता हूं।

मुझे एक त्रुटि संदेश मिलता है, "डिवाइस पर मीडिया परिवार गलत तरीके से गठित किया गया है। SQL सर्वर इस मीडिया परिवार को पुनर्स्थापित नहीं कर सकता"।

यदि मैं एंटरप्राइज़ प्रबंधक 2000 का उपयोग करता हूं तो मुझे एक ही त्रुटि मिलती है।

क्या नया SQL सर्वर से पुराने डेटाबेस में पूरे डेटाबेस को स्थानांतरित करने का कोई तरीका है?

उत्तर

10

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

+1

मैंने अभी यह कर लिया है। मुझे ऐसा करने का एकमात्र तरीका संपूर्ण डेटाबेस (डेटा सहित) को स्क्रिप्ट करना था और लक्ष्य मशीन पर स्क्रिप्ट चलाया गया था। अब, यह एक दर्द है, क्योंकि 2008 डीबी एक ऐसी स्क्रिप्ट तैयार कर सकती है जो 2000 (अच्छी तरह से, मेरा किया गया) पर नहीं चलती है, इसलिए आपको 2000 में चलाने से पहले जेनरेट की गई स्क्रिप्ट को संपादित करने की आवश्यकता होगी। शुरू करने से पहले टायलोनोल पर स्टॉक करें। सौभाग्य। – BoltBait

+4

हां, ऐसा करने का यही एकमात्र तरीका है। एसक्यूएल सर्वर पिछड़ा संगत नहीं रहा है, उदा। आप पुराने सर्वर पर एक नया संस्करण बहाल करने में कभी सक्षम नहीं हुए हैं। मुझे नहीं लगता कि यह –

0

मैंने सुना है कि आप केवल डीबी व्यवस्थापक उपकरण से SQL कथन डंप उत्पन्न करके और लक्षित पुराने डेटाबेस पर उन प्रश्नों को फिर से चलाकर इसे कर सकते हैं।

+1

बदलने की संभावना है बेशक आपको उन चीजों में हस्तक्षेप करना होगा क्योंकि स्क्रिप्ट टूल उन चीज़ों में रखता है जो 2000 पहचान नहीं पाएंगे। – HLGEM

1

यदि आप किसी पुराने करने के लिए एक नए संस्करण से बैकअप ले जा सकते हैं नहीं, ऐसी बात आप स्क्रिप्ट अपने डेटाबेस कर सकते हैं, 2000 बॉक्स में निष्पादित, तो आप किसी भी डेटा स्थानांतरित करने के मानक डेटा स्थानांतरण का उपयोग कर सकते हैं

चाहते
0

आप एक ऐसी स्क्रिप्ट जेनरेट कर सकते हैं जो सभी ऑब्जेक्ट्स को फिर से बनाएगा और सभी डेटा ट्रांसफर करेगा ... जब तक कि डीबी में सब कुछ SQL 2000 में मान्य है। तो कोई ROW_NUMBER(), कोई पार्टिशन नहीं, कोई सीटीई नहीं, कोई डेटाटाइम 2 नहीं है, पदानुक्रम या कई अन्य फ़ील्ड प्रकार, कोई विशिष्ट नहीं है, और कई अन्य भलाई। असल में, एक बहुत अच्छा मौका है जब तक कि आपका डीबी बहुत बुनियादी न हो।

1

बशर्ते आपके पास मशीनों के बीच नेटवर्क कनेक्शन एसएसआईएस का उपयोग करें। बहुत आसान और बहुत कम गड़बड़ाना।

1

आप अपने डेटाबेस के लिए स्क्रिप्ट जनरेटर का उपयोग करें और फिर गुण में चयन कर सकते हैं फार्म: सर्वर संस्करण के लिए जनरल> स्क्रिप्ट: एसक्यूएल सर्वर 2000

स्क्रिप्ट जनरेटर आप चीजें हैं जो अपने सर्वर संस्करण के संगत नहीं दिखाएगा ।

2

जैसा कि पहले से ही कहा गया है कि ऐसा करने का कोई डिफ़ॉल्ट तरीका नहीं है। यह सिर्फ समर्थित नहीं है। इसे ठीक से कैसे करें और किसी भी माइग्रेशन समस्याओं से बचने के बारे में अधिक विस्तृत विवरण यहां दिए गए हैं।

आपको संरचना और डेटा के लिए स्क्रिप्ट उत्पन्न करने की आवश्यकता है और फिर SQL 2000 (जैसे कि पहले से ही कहा गया है) पर निष्पादित करने की आवश्यकता है, लेकिन कुछ चीजों को ध्यान में रखना है।

SSMS में स्क्रिप्ट उत्पन्न

  • एसक्यूएल 2000 के लिए पटकथा डेटा के लिए विकल्प की जाँच करने के लिए जब एसक्यूएल 2000 को भूगोल प्रकार स्तंभ की तरह कुछ बनाने का प्रयास कर मुद्दों से बचने के सुनिश्चित करें।
  • स्क्रिप्ट के निष्पादन के आदेश निर्भरता के आधार पर त्रुटियों

इस छोटे से मध्यम आकार डेटाबेस के लिए एक बढ़िया विकल्प है और से बचने के लिए की समीक्षा अवश्य करें एसक्यूएल सर्वर के कुछ ज्ञान की आवश्यकता है (निर्भरता, संस्करणों और इस तरह के बीच मतभेद)

तृतीय पक्ष टूल

  • आइडिया ऐसे ApexSQL Diff याके रूप में तीसरे पक्ष डेटाबेस तुलना उपकरण का उपयोग करने के लिए है 0
  • अच्छा पक्ष है कि इन और स्क्रिप्ट निष्पादन का ख्याल संस्करणों के बीच मतभेदों को लगेगा
  • इतना अच्छा नहीं तथ्य यह है कि आप इन परीक्षण के बाद के लिए भुगतान करने की आवश्यकता होगी समाप्त होता है
  • मैं इन दो उपकरण का उपयोग किया है सफलतापूर्वक लेकिन आप बाजार पर किसी भी अन्य उपकरण के साथ गलत नहीं जा सकते हैं। Here इस श्रेणी में अन्य उपकरणों की एक सूची है।
0

हमें एक समान स्थिति मिली। एक बहुत ही कम तकनीकी लेकिन उपयोगी समाधान है:

  1. बैकअप और SQL में तालिकाओं काटना 2000
  2. एसक्यूएल 2008 में किसी लिंक किए गए सर्वर बनाने के लिए, एसक्यूएल की ओर इशारा करते 2000
  3. को sysobjects पर एक का चयन क्वेरी चलाने insert into LINKED SERVER.table select * from table
  4. क्वेरी स्क्रिप्ट निष्पादित करने के लिए एक क्वेरी स्क्रिप्ट उत्पन्न करें।
संबंधित मुद्दे