ऐसा करने के कई तरीके हैं:
- एसएसआईएस (एसक्यूएल सर्वर एकीकरण सेवाएं) का उपयोग करना . यह केवल
data
आयात करता है आपकी टेबल में। कॉलम गुण, बाधाएँ, कुंजियाँ, सूचकांक, संग्रहीत कार्यविधियाँ, ट्रिगर, सुरक्षा सेटिंग्स, उपयोगकर्ता, लॉगऑन आदि स्थानांतरित नहीं किए जाते हैं। हालाँकि यह बहुत ही सरल प्रक्रिया है और इसे SQL सर्वर प्रबंधन स्टूडियो में विज़ार्ड के माध्यम से आसानी से किया जा सकता है। - SSIS और DB निर्माण स्क्रिप्ट के संयोजन का उपयोग करना . यह आपको डेटा और सभी लापता मेटाडेटा प्राप्त करेगा जो एसएसआईएस द्वारा स्थानांतरित नहीं किया गया है। ये भी बहुत आसान है। पहले SSIS का उपयोग करके डेटा ट्रांसफर करें (नीचे निर्देश देखें), फिर SQL Azure डेटाबेस से DB बनाएँ स्क्रिप्ट बनाएं, और इसे अपने स्थानीय डेटाबेस पर फिर से चलाएं।
- आखिरकार, आप SQL Azure में आयात/निर्यात सेवा का उपयोग कर सकते हैं . यह डेटा (स्कीमा ऑब्जेक्ट के साथ) को BACPAC के रूप में Azure Blob Storage में स्थानांतरित करता है। आपको एक Azure संग्रहण खाते की आवश्यकता होगी और इसे Azure वेब पोर्टल में करें। जब आप उस डेटाबेस का चयन करते हैं जिसे आप निर्यात करना चाहते हैं, तो यह Azure वेब पोर्टल में "निर्यात" बटन दबाने जितना आसान है। नकारात्मक पक्ष यह है कि यह केवल मैनुअल प्रक्रिया है, मुझे टूल या स्क्रिप्ट के माध्यम से इसे स्वचालित करने का कोई तरीका नहीं पता - कम से कम पहला भाग जिसके लिए वेब पेज पर एक क्लिक की आवश्यकता होती है।
विधि #1 . के लिए मैन्युअल प्रक्रिया (एसएसआईएस का उपयोग करके) निम्नलिखित है:
- एसक्यूएल सर्वर मैनेजमेंट स्टूडियो (एसएसएमएस) में अपने स्थानीय एसक्यूएल इंस्टेंस पर नया खाली डेटाबेस बनाएं।
- संदर्भ मेनू से डेटा आयात करें चुनें (डेटाबेस पर राइट क्लिक करें -> कार्य -> डेटा आयात करें...)
- स्रोत के लिए कनेक्शन पैरामीटर टाइप करें (SQL Azure)। प्रदाता के रूप में "एसक्लसेवर के लिए नेट फ्रेमवर्क डेटा प्रदाता" चुनें।
- मौजूदा खाली स्थानीय डेटाबेस को गंतव्य के रूप में चुनें।
- विज़ार्ड का अनुसरण करें -- आप उन तालिका डेटा का चयन करने में सक्षम होंगे जिन्हें आप कॉपी करना चाहते हैं। आप ऐसी किसी भी तालिका को छोड़ना चुन सकते हैं जिसकी आपको आवश्यकता नहीं है। उदा. यदि आप डेटाबेस में एप्लिकेशन लॉग रखते हैं, तो संभवतः आपको अपने बैकअप में इसकी आवश्यकता नहीं है।
आप एसएसआईएस पैकेज बनाकर इसे स्वचालित कर सकते हैं और जब भी आप डेटा को फिर से आयात करना चाहते हैं तो इसे फिर से निष्पादित कर सकते हैं। ध्यान दें कि आप केवल एसएसआईएस का उपयोग करके एक स्वच्छ डीबी में आयात कर सकते हैं, आप अपने स्थानीय डेटाबेस में वृद्धिशील अपडेट एक बार पहले ही कर लेने के बाद नहीं कर सकते हैं।
विधि #2 (SSID डेटा प्लस स्कीमा ऑब्जेक्ट) बहुत आसान है। पहले ऊपर वर्णित चरणों पर जाएं, फिर डीबी क्रिएशन स्क्रिप्ट बनाएं (एसएसएमएस में डेटाबेस पर राइट क्लिक करें, जेनरेट स्क्रिप्ट चुनें -> डेटाबेस बनाएं)। फिर इस स्क्रिप्ट को अपने स्थानीय डेटाबेस पर फिर से चलाएं।
विधि #3 यहाँ ब्लॉग में वर्णित है:http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/। बीएसीपीएसी के रूप में एज़ूर ब्लॉब स्टोरेज में डीबी सामग्री को स्थानांतरित करने की प्रक्रिया के साथ एक वीडियो क्लिप है। उसके बाद आप फ़ाइल को स्थानीय रूप से कॉपी कर सकते हैं और इसे अपने SQL इंस्टेंस में आयात कर सकते हैं। डेटा-टियर एप्लिकेशन में BACPAC आयात करने की प्रक्रिया यहां वर्णित है:http://msdn.microsoft.com/en-us/library/hh710052.aspx।