क्या मैं SQL सर्वर के बिना SQL सर्वर .bak फ़ाइलों को पुनर्स्थापित कर सकता हूं?


16

मेरे पास .bakSQL Server 2005 डंप से कुछ बड़ी फाइलें हैं।

क्या मैं बिना SQLgreSQL, MySQL, या फ्लैट टेक्स्ट फ़ाइलों के SQL सर्वर का उपयोग किए बिना इन्हें पुनर्स्थापित कर सकता हूं?

एक खुला स्रोत समाधान सबसे उपयोगी होगा।


1
"मैं इस कार्य के लिए ऐसा नहीं करना पसंद करूंगा।" क्यों नहीं? यह वह तरीका है जो आप करने की कोशिश कर रहे हैं।
swasheck

क्या कुछ और करने से भी कोई मतलब होता है? आप परिणामी डेटा के साथ क्या करना चाहते हैं?
फिल

1
@ पीआईएल परिणामी डेटा को पोस्टग्रेसीक्यूएल डेटाबेस या फ्लैट टेक्स्ट फाइलों में स्थानांतरित करना चाहेगा।
अबे

1
@swasheck मैंने उद्धृत पंक्ति को हटा दिया, क्योंकि ऐसा लगता है कि यह प्रश्न से अलग हो गया है। लेकिन आपके प्रश्न का उत्तर देने के लिए, क्योंकि मुझे नहीं पता कि इसका उपयोग कैसे करना है, और मेरा सर्वर लिनक्स चलाता है। एक उपलब्ध विंडोज़ लैपटॉप में पर्याप्त जगह नहीं है।
अबे

2
खैर यह वह जानकारी है जो हमारे पास अब से पहले नहीं थी :)। अतिरिक्त जानकारी के लिए धन्यवाद - मेरे पास एक योजना है
स्वैसेक करें

जवाबों:


19

यहाँ मेरा सुझाव है:

  1. बैकअप के लिए पर्याप्त डिस्क स्थान के साथ, विंडोज चलाने वाली एक वर्चुअल मशीन का निर्माण करें। बैकअप फ़ाइल को वहां कॉपी करें। यदि आपके पास वर्चुअल मशीन बनाने की क्षमता नहीं है, तो आप Oracle VirtualBox जैसे मुफ्त उत्पादों के साथ ऐसा कर सकते हैं ।
  2. SQL सर्वर के मूल्यांकन संस्करण को डाउनलोड और इंस्टॉल करें । सुनिश्चित करें कि आप डेटाबेस इंजन और प्रबंधन उपकरण - पूर्ण दोनों को शामिल करते हैं।
  3. यदि वीएम के पास बैकअप रखने के लिए पर्याप्त जगह नहीं है लेकिन इसे पुनर्स्थापित करने के लिए पर्याप्त स्थान नहीं है, तो आप रेड-गेट से उसी नाम के उत्पाद के परीक्षण संस्करण का उपयोग करके "वर्चुअल रिस्टोर" कर सकते हैं (जो आपको बातचीत करने की अनुमति देता है। बैकअप फ़ाइल के रूप में अगर यह बहाल किया गया था)। अन्यथा, डेटाबेस को सामान्य तरीके से पुनर्स्थापित करें

  4. एक बार डेटाबेस उपलब्ध होने के बाद (या तो सामान्य रीस्टोर या वर्चुअल रिस्टोर के माध्यम से), आप स्कीमा और डेटा के लिए स्क्रिप्ट निम्न तरीके से जनरेट कर सकते हैं:

    • प्रबंधन स्टूडियो खोलें और अपने उदाहरण से कनेक्ट करें।
    • ओपन ऑब्जेक्ट एक्सप्लोरर।
    • अपने नए बहाल डेटाबेस पर राइट-क्लिक करें, कार्य> लिपियों को जनरेट करें ...
    • अगला क्लिक करें, अगला क्लिक करें
    • "स्क्रिप्ट विकल्प चुनें" पृष्ठ पर, स्क्रॉल करें और "स्क्रिप्ट डेटा" को True पर सेट करें
    • अगला पर क्लिक करें
    • सभी संबंधित वस्तुओं की जाँच करें और अगला क्लिक करें
    • इच्छित तालिकाओं की जाँच करें और अगला क्लिक करें
    • फ़ाइल में स्क्रिप्ट चुनें। अब आपके पास एक फ़ाइल होगी जिसमें SQL सर्वर इंसर्ट सिंटैक्स का उपयोग करके आपके सभी ऑब्जेक्ट्स और डेटा शामिल हैं, आपको इसे एक प्रारूप में प्राप्त करने के लिए आउटपुट के साथ खेलना होगा जो पोस्टग्रेज के लिए काम करता है (मैं किसी भी मामूली सिंटैक्स मतभेदों के लिए निजी नहीं हूं)।

वैकल्पिक रूप से आप CSV फ़ाइलों या समान डेटा निकालने के लिए bcp उपयोगिता के साथ प्रयास कर सकते हैं , लेकिन आपको यह टेबल-बाय-टेबल करना होगा या कुछ चतुर स्क्रिप्टिंग (PowerShell, T-SQL, C # / SMO, आदि) का उपयोग करना होगा। ) आपके लिए सभी bcp कमांड उत्पन्न करने के लिए। CSV फ़ाइलों में एक बार, यह डेटा को पोस्टग्रेज में बल्क लोड करने के लिए तुच्छ होना चाहिए (लेकिन टेबल बनाने के लिए आपके पास अभी भी कुछ काम होगा)।

एक अंतिम सुझाव के रूप में, यदि .bak फ़ाइल जिन्न नहीं है, और डेटा गोपनीय नहीं है, तो मैं आपके लिए आवश्यक प्रारूप में फ़ाइलों की कोशिश करने और उत्पन्न करने के लिए तैयार हूं। मेरे पास अंतरिक्ष के साथ बहुत सारे विंडोज वीएम हैं, चुनौती मिल रही होगी। बाके फ़ाइल को एक ऐसी जगह जहां मैं इसे पुनः प्राप्त कर सकता हूं - खासकर अगर यह फ़ाइल-साझाकरण सेवाओं के अधिकांश समर्थन से बड़ा है।


एक बार कंप्यूटर पर आने के बाद मैं bcp विधि का सुझाव देने वाला था। कुछ गोचरों में टेबल डेलिमिटर, पहचान (अनुक्रम, स्नातकोत्तर में), नवरच, कुछ ही नाम हैं। अन्यथा, यह वही है जो मैंने अपने संपादन अनुभाग में (sans Red-Gate) सुझाया था।
स्वैसेक करें

8, 20GB .bak फाइलें हैं, और यह बहुत अच्छा होगा यदि आप मदद कर सकते हैं, लेकिन कृपया gis.se, gis.stackexchange.com/q/28281/3218 और gis.stackexchange.com/q/28257 पर संबंधित प्रश्न देखें। / यूएसडीए मिट्टी डेटाबेस (SSURGO) के बारे में 3218 । सिमुलेशन मॉडलिंग के लिए स्वचालित रूप से इन डेटा तक पहुंच का उपयोग करना बहुत मुश्किल है। इन आंकड़ों को अधिक प्रयोग करने योग्य संरचना में रखना विज्ञान के लिए बहुत लाभकारी होगा। आप इसे मेरे सर्वर से डाउनलोड कर सकते हैं। डेटा गोपनीय नहीं है, कोई भी इसे $ 50 / CD या $ 100 / डीवीडी या शायद अपने एक्सटेंशन एजेंट से कम में प्राप्त कर सकता है।
अबे

ऐसा लगता है कि आपके पास GIS.SE पर डेटा प्राप्त करने के बारे में उत्तर हैं। मैंने उन साइटों को देखा और देखा है, लेकिन यह नहीं देखा कि वे कहाँ निर्दिष्ट करते हैं कि फ़ाइल एक SQL सर्वर बैकअप है। आपने इन फ़ाइलों को कहाँ से प्राप्त किया?
स्वैसेक करें

7

दुर्भाग्यवश फ़ाइल के आंतरिक ज्ञान की गहरी जानकारी के बिना .bak फ़ाइल की सामग्री तक पहुँच प्राप्त करने का कोई तरीका नहीं है। मैं यहां एक व्यक्ति के बारे में सोच सकता हूं जो इस जानकारी के लिए निजता हो सकता है, लेकिन मैं यह नहीं कह सकता हूं कि क्या कोई व्यक्ति आपको बताएगा कि यह कैसे करना है

तो, आपको SQL सर्वर इंस्टेंस स्थापित करने की आवश्यकता है। आपको यह सुनिश्चित करने की आवश्यकता है कि यह उदाहरण आपके पोस्टग्रेज सर्वर से बात कर सकता है (pg_hba.conf के साथ फ्रिगिंग) एक बार, आपके पास डेटा को स्थानांतरित करने के लिए कुछ अच्छे रास्ते हैं।

पहला रास्ता Postgres Windows ODBC ड्राइवर स्थापित करना और pg सर्वर से कनेक्शन स्थापित करना होगा। तब आप डेटा माइग्रेशन को स्क्रिप्ट करने के लिए SSIS का उपयोग कर सकते हैं। यदि आप इस मार्ग पर जाने वाले हैं, तो मेरा सुझाव है कि आप डेटाबेस सर्वर स्थापित करते समय SSIS स्थापित करें।

अन्य विकल्प में ODBC ड्राइवर कनेक्शन भी शामिल है, लेकिन आप SQL सर्वर में एक लिंक्ड सर्वर बना सकते हैं और SQL सर्वर पर pg उदाहरण पर आवेषण चला सकते हैं। मैंने इस सटीक प्रश्न का उत्तर यहां दिया है, इसलिए इसे खोजना मुश्किल नहीं होना चाहिए।

संपादित करें

आरोन की टिप्पणी को शामिल करने के लिए, एक बार जब आप SQL सर्वर को चालू करते हैं और चल रहे होते हैं, तो आप विभिन्न तरीकों से फ्लैट फ़ाइलों को डेटा निर्यात कर सकते हैं। यदि आप इस मार्ग को चुनते हैं तो मुझे बताएं और मैं ऐसा करने के लिए कुछ तरीके बताऊंगा

EDIT (2):

जब तक आप अग्रिम में संरचना नहीं बनाना चाहते हैं, तब तक लिंक की गई सर्वर प्रक्रिया सबसे अच्छा तरीका नहीं हो सकती है। यह मेरा पसंदीदा तरीका है, लेकिन मेरे पास आमतौर पर पहले से ही दोनों तरफ की संरचना है।

जो हारून बर्ट्रेंड के जवाब को सबसे अच्छे उत्तर के रूप में छोड़ता है। कृपया ध्यान दें कि डेटा प्रकारों के अलावा ( IDENTITYबनाम SEQUENCE, पोस्टग्रेज कुछ भी नहीं जानते हैं NVARCHARक्योंकि आपने डेटाबेस पर एन्कोडिंग सेट किया है)। Postgres कुछ भी नहीं जानता CREATE CLUSTERED INDEX( CLUSTERआपके लिए काम कर सकता है)। अंत में, चूंकि मैं टिप्पणियों में देखता हूं कि आप स्थानिक डेटा का उपयोग करने जा रहे हैं, postgresql को CREATE SPATIAL INDEXसिंटैक्स का कुछ भी नहीं पता है । INDEXTYPEस्थानिक अनुक्रमित बनाने के लिए आपको पोस्टगिस स्थापित करने और कीवर्ड का उपयोग करने की आवश्यकता होगी । अंत में, सुनिश्चित करें कि आप स्कीमा को उचित रूप से संभालेंगे।

कहानी संक्षिप्त में:

  1. हारून बर्ट्रेंड की विधि का उपयोग करके स्क्रिप्ट और डेटा उत्पन्न करें (मैं संभवतः तालिका स्तर के साथ रहना चाहूंगा)
  2. सूचकांक DDL पर ध्यान दें (यदि यह अभी भी मान्य है), लेकिन इसे शामिल न करें
  3. एक बार संरचना और डेटा के एक साथ पोस्टग्रेज पर इंडेक्स बनाएं

3
मुझे नहीं लगता कि Postgres से बात करने के लिए आपको SQL Server को कॉन्फ़िगर करने की आवश्यकता है। मुझे यकीन है कि एक बार जब आप SQL सर्वर स्थापित कर लेंगे तो आप डेटा को विभिन्न स्वरूपों में निकाल सकते हैं जो पोस्टग्रैज समझ में आएंगे।
हारून बर्ट्रेंड

क्षमा याचना। मेरा मतलब था कि आपको बाहरी कनेक्शन (इस मामले में SQL सर्वर) को स्वीकार करने के लिए Postgres को कॉन्फ़िगर करने की आवश्यकता होगी
swasheck

माफी न मांगें। :-) मैं सिर्फ यह स्पष्ट कर रहा था कि आपको सीधे पोस्टग्रेज या इसके विपरीत SQL सर्वर से बात करने की आवश्यकता नहीं है ..
हारून बर्ट्रेंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.