Azure SQL डेटाबेस Bacpac स्थानीय पुनर्स्थापना


130

मैंने Azure प्रबंधन कंसोल के भीतर "निर्यात" विकल्प का उपयोग करके अपने Azure SQL डेटाबेस का BACPAC बैकअप बनाया है।

अपनी मशीन पर इसे डाउनलोड करने के बाद मैं इस बात पर थोड़ा अटक गया हूं कि मैं इसे स्थानीय SQL सर्वर उदाहरण में कैसे पुनर्स्थापित कर सकता हूं। मैं DacImportExportCli टूल पर आया, लेकिन स्थानीय रीस्टोर का उदाहरण नहीं खोज सका।

इसके अलावा अगर किसी ने एक स्क्रिप्ट लिखी है जो ऐसा करती है (तो इसे शेड्यूल किया जा सकता है) जो कमाल की होगी।


8
यह SQL Server 2012 की बात हो सकती है, लेकिन SQL सर्वर प्रबंधन स्टूडियो में अगर मैं अपने स्थानीय सर्वर के डेटाबेस फ़ोल्डर पर राइट-क्लिक करता हूं और आयात डेटा टियर एप्लिकेशन का चयन करता हूं जो एक विज़ार्ड शुरू करता है जो मेरे Azure डेटाबेस की प्रतिलिपि बनाने के लिए BACPAC फ़ाइल में पढ़ता है । विज़ार्ड BACPAC फ़ाइल प्राप्त करने के लिए सीधे blob-store से जुड़ सकता है यदि आप इसे पहले स्थानीय रूप से कॉपी नहीं करेंगे।
डंबलड

क्या आपको कभी यह पता चला?
22

3
@dumbledad मेरा मानना ​​है कि डेटा-टियर एप्लिकेशन को आयात करने के लिए यह SQL 2012 SSMS की बात है, 2008R2 केवल DACPACs को निर्यात करने की क्षमता रखता है, कोई आयात विकल्प नहीं देख सकता है।
जेमीबारो

जवाबों:


179

यह केवल SQL सर्वर प्रबंधन स्टूडियो 2012 के माध्यम से किया जा सकता है

  1. कनेक्शन> डेटाबेस नोड पर राइट क्लिक करें और " डेटा आयात करें एप्लिकेशन का चयन करें ... "
  2. परिचय चरण पर " अगला " चुनें ।
  3. यहाँ छवि विवरण दर्ज करें
  4. जहां बैकअप रखा जाता है, वहां एक भंडारण खाते से ब्राउज़ करें, या कनेक्ट करें।

2
यह पूर्ण है। RedGate टूल परतदार हो सकता है। मुझे एक एमएस समर्थित विकल्प देखकर खुशी हुई।
gilly3

2
यह sql एक्सप्रेस 2012 के साथ काम करता है? क्योंकि मेरे पास निम्न त्रुटि संदेश है: पैकेज से स्कीमा मॉडल को न गिनें। (Microsoft.SqlServer.Dac) ------------------------------ अतिरिक्त जानकारी: आंतरिक त्रुटि। आंतरिक लक्ष्य प्लेटफ़ॉर्म प्रकार SqlAzureDatabaseSchemaProvider स्कीमा फ़ाइल संस्करण '2.5' का समर्थन नहीं करता है। (फ़ाइल: C: \ Users \ xxxxx \ डाउनलोड \ dbname-2013-10-10-20-2.bacpac) (Microsoft.Data.Tools.Schema.Sql)
एंटोनी Meltzheim

@ElTone मैंने अभी प्रबंधन स्टूडियो का उपयोग करके अपने स्थानीय एसक्यूएल सर्वर एक्सप्रेस 2012 डेटाबेस के लिए एज़्योर स्टोरेज से सीधे एक बैचपैक को बहाल किया है। कोई त्रुटि नहीं देखी और डेटा वहाँ होने लगता है। किसी ने उल्लेख किया है कि SQL सर्वर डेटा टूल्स के नए संस्करण को स्थापित करने से उन्हें मदद मिली (लेकिन वे प्रबंधन स्टूडियो की बात नहीं कर रहे हैं) social.msdn.microsoft.com/Forums/windowsazure/en-US/…
Juha

@ जूहा पालोम्की सही: एसएसडीटी के नवीनतम संस्करण को स्थापित करने से समस्या हल हो गई। सब अब बेहतर है।
एंटोनी Meltzheim

4
लगता है कि प्रबंधन स्टूडियो के साथ आप कितने बड़े बेपैक फ़ाइलों को आयात कर सकते हैं। यदि आप OutOfMemory अपवाद को हिट करते हैं, तो कमांड लाइन टूल SqlPackage.exe का उपयोग करने के बारे में पिस्सू के जवाब की जांच करें
Juha Palomäki

52

मुझे SQL Azure डेटाबेस को निर्यात करने और फिर इसे स्थानीय SQL 2008 R2 सर्वर में आयात करने की आवश्यकता थी (ध्यान दें कि मैं विजुअल स्टूडियो 2010 का भी उपयोग कर रहा हूं)। Microsoft निश्चित रूप से इस दर्दनाक कार्य को करने के लिए अपने रास्ते से बाहर चला गया, हालाँकि, मैं निम्नलिखित कार्य करके इसे करने में सक्षम था:

  1. इस लिंक पर जाएं http://msdn.microsoft.com/en-us/jj650014 और Visual Studio 2010 के लिए SQL सर्वर डेटा उपकरण स्थापित करें

  2. यह आपके स्थानीय ड्राइव पर स्थापित होगा। मेरे मामले में यहाँ यह कहाँ रखा गया है: C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DACI बिन

  3. कमांड लाइन या पावरशेल के माध्यम से इसे ब्राउज़ करें

  4. आप SqlPackage.exe निष्पादित करना चाहते हैं

  5. SqlPackage.exe ( http://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx ) के सभी पैरामीटर विकल्पों की सूची देखने के लिए इस लिंक को खोलें।

  6. यहाँ मेरी कमांड लाइन है जिसे मुझे अपने स्थानीय SQL 2008 R2 सर्वर में .bacpac फ़ाइल आयात करने के लिए निष्पादित करने की आवश्यकता है:

    । \ SqlPackage.exe / a: Import /sf:C:\mydatabasefile.bacpac / tdn: NorthWind / tsn: BINGBONG

/tdnउस डेटाबेस का नाम है जिसे आप पुनर्स्थापित करना चाहते हैं। /tsnआपके SQL सर्वर का नाम है।

आप इन सभी पैरामीटर विवरणों को लिंक पर # 5 से देख सकते हैं।


यह और भी आसानी से पूरा किया जा सकता है यदि आपके पास SSMS 2012 स्थापित है। आप बस विज़ार्ड का उपयोग कर सकते हैं जैसा कि @Josiah द्वारा वर्णित है, यहां तक ​​कि 2008 R2 सर्वर के साथ भी।
दानो

2
मैंने इस समाधान की खोज में इतना समय बिताया कि मैं पूरे प्रबंध स्टूडियो 2014 को डाउनलोड करने में सफल रहा।
संथोस

SqlPackage मेरे लिए 'डेटाबेस अपडेट करने' के चरण पर लटका हुआ था, जब तक कि मैंने लक्ष्य डेटाबेस को पूरी तरह से गिरा नहीं दिया
michael_hook

10

आप क्लाइंट साइड टूल का उपयोग करके BACPAC को पुनर्स्थापित कर सकते हैं। वीडियो यहाँ हैं:

http://dacguy.wordpress.com/2011/09/09/importexport-services/

उपकरण यहां उपलब्ध हैं:

http://sqldacexamples.codeplex.com/documentation


उपकरण स्थानीय डेटाबेस में bacpac के आयात का समर्थन करने वाला है। उदाहरण के लिए, विंडोज प्रामाणिक का उपयोग करने वाले डेटाबेस के लिए एक बेपैक आयात करना इस तरह दिखाई देगा: "DacCli -S myserver -E -D nw_restored -F Northwind.bacpac -I"। हालांकि, आवश्यक विधानसभाओं की कोडप्लेक्स सूची पुरानी है - कोई भी लिंक काम नहीं करेगा, इसलिए उपकरण नहीं चलेगा (यह कुछ SQL 2012 CTP घटकों पर पूर्वापेक्षा है)।
डेविड एरापिएटन

मेरे पास मेरे मशीन पर स्थापित सभी घटक हैं, इसलिए मैंने DacCli के साथ एक बेपैक आयात करने की कोशिश की - यह काम किया (मेरी पिछली टिप्पणी में कमांड-लाइन देखें)। 100 एमबी बेपक के लिए लगभग 20 मिनट लगे।
डेविड एरापिएटन 21

7

मेरी प्रार्थनाओं का उत्तर दिया गया। Redgate ने आज मुफ्त में अपना SQL Azure Backup टूल लॉन्च किया - http://www.red-gate.com/products/dba/sql-azure-backup/download


कई मुद्दे: 1. SQL Azure बैकअप का सक्रिय विकास अभी के लिए रोक दिया गया है (यह नोट तब प्रदर्शित किया जाता है जब आप उपकरण का नवीनतम संस्करण चलाते हैं) 2. जब Azure से सीधे स्थानीय SQL में बैकअप लेते हैं, तो यह पास नहीं होता है: bacpac लेकिन इसके बजाय किसी तरह के घर में विकसित स्कीमा / डेटा कॉपी को लागू करता है। मेरे अनुभव में, यह बहुत धीमा है। 3. पिछले बिंदु पर निर्माण करने के लिए, तंत्र छोटी गाड़ी है - मेरे पास कई तालिकाओं को स्थानांतरित करने में विफल रहा है क्योंकि उपकरण एक अद्वितीय कुंजी का पता नहीं लगा सकता है
डेविड एरापिएटन

2
इस उत्तर को अद्यतन किया जाना चाहिए, या अब स्वीकृत उत्तर नहीं होना चाहिए। लिंक टूल तब से "क्लाउड" समाधान बन गया है और स्थानीय बैकअप का समर्थन नहीं करता है।
तीमुथियुस Strimple


5

यदि आप SSMS 2012 का उपयोग कर रहे हैं, तो ऑब्जेक्ट एक्स्प्लोरर में एक सर्वर के तहत डेटाबेस फ़ोल्डर पर राइट-क्लिक करना और "डेटा आयात करना आवश्यक है ..." चुनना उतना ही आसान है।

बाहर देखने के लिए सड़क में एक टक्कर है: 26 मार्च 2013 के रूप में (जब मुझे यह पता करने की आवश्यकता थी कि यह कैसे करना है), जब आप अज़ुरे से .bacpac निर्यात करते हैं, तो इसे एक .zip फ़ाइल के रूप में डाउनलोड किया जाएगा। नहीं .bacpac फ़ाइल, और आयात विज़ार्ड में ब्राउज़ बटन द्वारा खोले गए फ़ाइल संवाद केवल * .bacpac या दिखाए जाएंगे फ़ाइल फ़िल्टर में, जिसका अर्थ है कि .zip समर्थित नहीं है। हालाँकि, यदि आप फ़िल्टर को इसमें बदलते हैं , अपने डाउनलोड .zip का चयन करें, और अगला क्लिक करें, विज़ार्ड सामान्य रूप से आगे बढ़ेगा।


2
यह सही जवाब है। अब आप SSMS 2016 के मुक्त स्टैंडअलोन संस्करण को स्थापित कर सकते हैं और यह इन सभी विशेषताओं को प्रदान करता है
हारून

3

यहाँ एक बार में बेपैक फ़ाइलों के एक समूह को पुनर्स्थापित करने के लिए एक स्क्रिप्ट है: बल्क रिस्टोर बेकपैक फाइलें स्थानीय

cd [FOLDERPATH]
$goodlist = dir
cd 'C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin'
foreach($i in $goodlist){ $name = $i.Name; $namer = $i.Name.Substring(0, $i.Name.length - 7); .\SqlPackage.exe /a:Import /sf:[FOLDERPATH]\$name /tdn:$namer /tsn:[SERVERNAME] }
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.