sql server - कम संस्करण पर SQL सर्वर डेटाबेस बैकअप पुनर्स्थापित करें




sql-server (8)

निम्न संस्करण SQL सर्वर डेटाबेस बैकअप फ़ाइल को निम्न संस्करण SQL सर्वर पर पुनर्स्थापित कैसे करें?

SQL सर्वर 2008 R2 (10.50.1600) का उपयोग करके, मैंने इस सर्वर संस्करण से बैकअप फ़ाइल बनाई है और अब मैं इसे अपने लाइव सर्वर के SQL Server 2008 (10.00.1600) पर पुनर्स्थापित करना चाहता हूं। उस समय जब मैंने SQL Server 2008 पर पुनर्स्थापित किया, तो यह एक त्रुटि देता है यानी Restore Failed क्योंकि:

डेटाबेस को संस्करण 10.50.1600 चलाने वाले सर्वर पर बैक अप लिया गया था। वह संस्करण इस सर्वर के साथ असंगत है, जो संस्करण 10.00.1600 चला रहा है।

इस सर्वर पर इस बैकअप फ़ाइल को पुनर्स्थापित कैसे करें?


आप निर्यात डेटा-टियर एप्लिकेशन नामक कार्यक्षमता का उपयोग कर सकते हैं जो डेटाबेस स्कीमा और डेटा वाली .bacpac फ़ाइल उत्पन्न करता है।

गंतव्य सर्वर पर, आप आयात डेटा-स्तरीय एप्लिकेशन विकल्प का उपयोग कर सकते हैं जो पूर्व-निर्मित .bacpac फ़ाइल से नए डेटाबेस बनाता है और पॉप्युलेट करता है

यदि आप डेटाबेस स्कीमा को स्थानांतरित करना चाहते हैं, तो आप फ़ाइल बनाने और बनाए गए डेटाबेस स्कीमा को तैनात करने के लिए डेटा-स्तरीय एप्लिकेशन को तैनात करने के लिए निकालें डेटा-स्तरीय एप्लिकेशन का उपयोग कर सकते हैं।

मैंने एसक्यूएल सर्वर के एसक्यूएल सर्वर से SQL 2012 और SQL 2014 से SQL 2008R2 तक SQL Server के विभिन्न संस्करणों पर इस प्रक्रिया को आजमाया है और अच्छी तरह से काम किया है।


आप इसे आजमा सकते हैं।

  1. SQL सर्वर 2008 पर डेटाबेस बनाएं।
  2. SQL सर्वर R2 (या किसी भी उच्च संस्करण) से आयात डेटा सुविधा आयात डेटा का उपयोग करना।
  3. स्क्रिप्ट सिंक्रनाइज़ करने के लिए "RedGate SQLCompare" का उपयोग करें।

आप छोटे टेबल के लिए बीसीपी का उपयोग और बाहर कर सकते हैं।

बीसीपी आउट कमांड: -

BCP "SELECT *  FROM [Dinesh].[dbo].[Invoices]" QUERYOUT C:\av\Invoices1.txt -S MC0XENTC -T -c -r c:\error.csv

बीसीपी इन कमांड: - Invoicescopy1 के लिए टेबल संरचना बनाएं।

BCP [Dinesh].[dbo].[Invoicescopy1] IN C:\av\Invoices.txt -S MC0XENTC -T -c

इसे पूरा करने के लिए विभिन्न विकल्पों पर मेरे 2 सेंट यहां दिए गए हैं:

तीसरे पक्ष के औजार : संभवतः नौकरी पाने का सबसे आसान तरीका निम्न संस्करण पर खाली डेटाबेस बनाना है और फिर बैकअप को पढ़ने और बैकअप के साथ नए नव निर्मित डेटाबेस को सिंक्रनाइज़ करने के लिए तीसरे पक्ष के टूल का उपयोग करना है।

रेड गेट सबसे लोकप्रिय है लेकिन एपेक्स एसक्यूएल डिफ , एपेक्स एसक्यूएल डाटा डिफ , एडप्ट एसक्यूएल , इडेरा ... जैसे कई अन्य हैं। ये सभी प्रीमियम उपकरण हैं लेकिन आप परीक्षण मोड में काम कर सकते हैं;)

स्क्रिप्ट उत्पन्न करना : जैसा कि पहले से ही उल्लेख किया गया है, आप हमेशा एसएसएमएस का उपयोग करके स्क्रिप्ट संरचना और डेटा को स्क्रिप्ट कर सकते हैं लेकिन आपको निष्पादन के आदेश को ध्यान में रखना होगा। डिफ़ॉल्ट ऑब्जेक्ट स्क्रिप्ट द्वारा सही ढंग से आदेश नहीं दिया जाता है और आपको निर्भरताओं का ख्याल रखना होगा। यह एक मुद्दा हो सकता है यदि डेटाबेस बड़ा है और इसमें बहुत सारी वस्तुएं हैं।

आयात और निर्यात विज़ार्ड : यह एक आदर्श समाधान नहीं है क्योंकि यह सभी ऑब्जेक्ट्स को पुनर्स्थापित नहीं करेगा बल्कि केवल डेटा टेबल को बनाएगा लेकिन जब आप इसकी आवश्यकता हो तो त्वरित और गंदे फिक्स के लिए इसे विचार कर सकते हैं।


कार्य-> लिपियों को उत्पन्न करें ... "स्क्रिप्ट के लिए डेटा के प्रकार" में उन्नत में "शेमा और डेटा" का चयन करें और इस स्क्रिप्ट को अपने निचले संस्करण में चलाने का प्रयास करें


नहीं, डेटाबेस को डाउनग्रेड करना संभव नहीं है। 10.50.1600 एसक्यूएल सर्वर 2008 आर 2 संस्करण है। एसक्यूएल सर्वर 2008 इंस्टेंस पर इस डेटाबेस को पुनर्स्थापित या संलग्न करने का बिल्कुल कोई तरीका नहीं है जिसे आप पुनर्स्थापित करने का प्रयास कर रहे हैं (10.00.1600 SQL सर्वर 2008 है)। आपके एकमात्र विकल्प हैं:

  • इस उदाहरण को SQL Server 2008 R2 या अपग्रेड करें
  • आपके पास SQL ​​Server 2008 R2 इंस्टेंस पर बैकअप को पुनर्स्थापित करें, सभी डेटा निर्यात करें और इसे SQL Server 2008 डेटाबेस पर आयात करें।

यह सुंदर नहीं है, लेकिन इस तरह मैंने यह भी दिया है कि आपके पास यह विकल्प आपके SQL 2008 R2 इंस्टॉल पर स्थापित है ..

1) SQL सर्वर 2008 R2 "कार्य" में डेटाबेस पर राइट क्लिक करें .. विज़ार्ड में "स्क्रिप्ट जेनरेट करें", पूरे चरण में संपूर्ण डेटाबेस और ऑब्जेक्ट्स का चयन करें। "स्क्रिप्टिंग विकल्प सेट करें" चरण पर आपको "उन्नत" बटन देखना चाहिए, इसे चुनें और सुनिश्चित करें कि आप "सर्वर संस्करण के लिए स्क्रिप्ट" = SQL सर्वर 2008 "आर 2 संस्करण नहीं चुनते हैं। यह एक महत्वपूर्ण कदम है, क्योंकि" आयात डेटा " अपने आप से सभी प्राथमिक कुंजी, constriants और संग्रहित प्रक्रियाओं जैसे किसी भी अन्य वस्तुओं के साथ नहीं लाता है। "

2) क्वेरी विंडो का उपयोग कर नए इंस्टॉलेशन या डेटाबेस इंस्टेंस SQL ​​Express या SQL Server 2008 पर जेनरेट की गई SQL स्क्रिप्ट चलाएं या सहेजे गए .sql स्क्रिप्ट को खोलें और निष्पादित करें और आपको नया डेटाबेस देखना चाहिए।

3) अब नए डेटाबेस पर राइट क्लिक करें और "टास्क" चुनें .. "डेटा आयात करें .." स्रोत को आर 2 डेटाबेस और गंतव्य के रूप में नया डेटाबेस के रूप में चुनें। "एक या अधिक टेबल या दृश्यों से डेटा कॉपी करें", सभी टेबल का चयन करने के लिए शीर्ष चेकबॉक्स का चयन करें और फिर अगला चरण, पैकेज चलाएं और आपके पास पुराने संस्करण पर सबकुछ होना चाहिए। इसे 2005 के संस्करण में वापस जाने के लिए भी काम करना चाहिए। उम्मीद है कि यह किसी की मदद करता है।


जरूरी काम नहीं करेगा

काम करेगा

  • स्क्रिप्ट पीढ़ी - कार्य -> स्क्रिप्ट उत्पन्न करें । सुनिश्चित करें कि आप वांछित लक्ष्य SQL सर्वर संस्करण सेट स्क्रिप्टिंग विकल्प -> उन्नत पृष्ठ पर सेट करें । आप स्कीमा, डेटा या दोनों की प्रतिलिपि बनाने के लिए भी चुन सकते हैं। ध्यान दें कि जेनरेट की गई स्क्रिप्ट में, यदि आप गैर-एक्सप्रेस से व्यक्त या इसके विपरीत चलते हैं तो आपको mdf / ldf फ़ाइलों के लिए डेटा फ़ोल्डर को बदलने की आवश्यकता हो सकती है।

  • माइक्रोसॉफ्ट एसक्यूएल सर्वर डाटाबेस पब्लिशिंग सर्विसेज - मुझे लगता है कि SQL सर्वर 2005 और ऊपर के साथ आता है। here से नवीनतम संस्करण डाउनलोड here । पूर्वापेक्षाएँ: sqlncli.msi / sqlncli_x64.msi / sqlncli_ia64.msi , SQLServer2005_XMO.msi / SQLServer2005_XMO_x64.msi / SQLServer2005_XMO_ia64.msi ( here डाउनलोड here )।





sql-server