सर्वर के बीच MSSQL माइग्रेट करना आपको ट्रैक पर रखने के लिए उचित दिशा-निर्देशों के बिना चुनौतीपूर्ण हो सकता है। इस लेख में, मैं सर्वर या इंस्टेंस के बीच Microsoft SQL सर्वर डेटाबेस को माइग्रेट करने के विभिन्न तरीकों की रूपरेखा तैयार करूँगा। चाहे आपको एक ही डेटाबेस, कई डेटाबेस, लॉगिन या संग्रहीत कार्यविधियों और विचारों को स्थानांतरित करने की आवश्यकता हो, जिन्हें हमने आपको कवर किया है!
ऐसी कई परिस्थितियाँ हैं जहाँ आपको डेटाबेस को स्थानांतरित करने या डेटाबेस को पुनर्स्थापित करने की आवश्यकता होगी। सबसे आम कारण हैं:
- एक पूरी तरह से नए सर्वर पर जा रहा है।
- एसक्यूएल के एक अलग इंस्टेंस पर जा रहा है।
- डेवलपमेंट सर्वर बनाना या प्रोडक्शन सर्वर पर लाइव होना।
- बैकअप से डेटाबेस को पुनर्स्थापित करना।
SQL डेटाबेस को स्थानांतरित करने के दो मुख्य तरीके हैं। मैन्युअल रूप से Microsoft SQL सर्वर प्रबंधन स्टूडियो (SSMS) या कमांड लाइन के साथ। आपके द्वारा चुनी गई विधि इस बात पर निर्भर करती है कि आपको क्या हासिल करना है। यदि आप एक या कुछ डेटाबेस को स्थानांतरित कर रहे हैं, तो मैन्युअल रूप से बैकअप लेना और एसएसएमएस के साथ डेटाबेस को पुनर्स्थापित करना सबसे आसान तरीका होगा। यदि आप बहुत सारे डेटाबेस ले जा रहे हैं (10 से अधिक सोचें) तो कमांड लाइन विधि का उपयोग करने से प्रक्रिया तेज हो जाएगी। कमांड लाइन विधि पहले से अधिक तैयारी का काम करती है, लेकिन यदि आप दर्जनों डेटाबेस स्थानांतरित कर रहे हैं, तो यह प्रत्येक डेटाबेस को अलग-अलग माइग्रेट करने के बजाय स्क्रिप्ट को कॉन्फ़िगर करने में लगने वाले समय के लायक है। यदि आप सुनिश्चित नहीं हैं कि किस विधि का उपयोग करना है, तो प्रक्रिया के साथ सहज होने के दौरान पहले मैन्युअल दृष्टिकोण का प्रयास करें। कार्यप्रणाली की गहरी समझ के लिए मैं पूरी तरह से पढ़ने की सलाह देता हूं।
शब्दावली के लिए उपयोगी संदर्भ
एसएसएमएस - माइक्रोसॉफ्ट के लिए एक संक्षिप्त शब्द S क्यूएल एस एवर एम प्रबंधन एस टुडियो.
स्रोत सर्वर - जिस सर्वर या इंस्टेंस को आप से डेटाबेस ले जा रहे हैं या बंद ।
गंतव्य सर्वर - जिस सर्वर या इंस्टेंस को आप डेटाबेस को से ले जा रहे हैं ।
मैन्युअल विधि
SQL डेटाबेस को मैन्युअल तरीके से ले जाना बहुत आसान हो सकता है। यह कुछ या छोटे डेटाबेस को स्थानांतरित करने के लिए पसंदीदा प्रक्रिया है। मार्गदर्शिका के इस भाग का अनुसरण करने के लिए, आपके पास MSSQL और Microsoft SQL सर्वर प्रबंधन स्टूडियो (SSMS) स्थापित होना चाहिए।
स्रोत सर्वर पर डेटाबेस का बैकअप लेना
1. स्रोत सर्वर (जिस सर्वर से आप डेटाबेस को स्थानांतरित या बंद कर रहे हैं) में लॉग इन करके प्रारंभ करें। आप प्रारंभ> Microsoft SQL सर्वर> Microsoft SQL सर्वर प्रबंधन स्टूडियो का चयन करके Microsoft SQL सर्वर प्रबंधन स्टूडियो खोलना चाहेंगे ।
2. Windows प्रमाणीकरण या SQL प्रमाणीकरण का उपयोग करके SQL सर्वर में लॉग इन करें।
3. सर्वर का विस्तार करें (हमारे मामले में SQL01 ), डेटाबेस . का विस्तार करें , पहले डेटाबेस का चयन करें जिसे आप स्थानांतरित करना चाहते हैं (नीचे चित्र)।
4. अपने डेटाबेस पर राइट क्लिक करें और कार्य . चुनें फिर बैक अप . क्लिक करें ।
5. यहाँ से अब आप बैक अप डेटाबेस . पर हैं स्क्रीन। आप एक बैकअप प्रकार चुन सकते हैं जैसे पूर्ण या डिफरेंशियल , सुनिश्चित करें कि सही डेटाबेस चुना गया है, और SQL बैकअप के लिए गंतव्य सेट करें। हमारे उदाहरण के लिए, हम बैकअप . छोड़ सकते हैं टाइप करें पूर्ण . के रूप में .
6. बैकअप . के अंतर्गत टाइप करें , “केवल-कॉपी बैकअप . के लिए बॉक्स चेक करें ।" यदि आप DPM या सर्वर बैकअप का कोई अन्य रूप चला रहे हैं, तो केवल-प्रतिलिपि के बिना बैकअप ले रहे हैं ध्वज बैकअप लॉग श्रृंखला में विराम का कारण बनेगा।
7. आप गंतव्य . के अंतर्गत एक स्थान देखेंगे नए बैकअप के पथ के लिए। आमतौर पर आप निकालें यह प्रविष्टि तब जोड़ें एक फ़ोल्डर का चयन करने के लिए एक नया जो SQL के पास पढ़ने/लिखने की पहुंच है। एक नया बैकअप गंतव्य जोड़ना निम्न के जैसा पथ दिखाता है:
C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\
यह C:\ पथ वह जगह है जहाँ आपका संग्रहीत डेटाबेस बैकअप है। बाद के संदर्भ के लिए इस स्थान पर ध्यान दें, क्योंकि यह संग्रहीत बैकअप के लिए डिफ़ॉल्ट पथ है और SQL सेवाओं के लिए उचित पढ़ने/लिखने की पहुंच होनी चाहिए।
नोट:उन्नत उपयोगकर्ता गंतव्य को छोड़ने में सहज हो सकते हैं, बशर्ते आउटपुट फ़ोल्डर पर अनुमतियां सही हों।8. इसके बाद, इस पथ के अंत में एक फ़ाइल नाम जोड़ें, जैसे कि AdventureWorks2012-081418 .बक - फ़ाइल नाम को एक्सटेंशन .bak के साथ समाप्त करना सुनिश्चित करें और ठीक . चुनें
10. एक बार आपने ठीक . दबा दिया बैकअप गंतव्य चुनें . पर शीघ्र, आप डेटाबेस का बैकअप लेने के लिए तैयार हैं! अब आपको बस हिट करना है ठीक , और डेटाबेस का बैकअप लेना शुरू हो जाएगा। आपको निचले बाएं कोने में एक प्रगति पट्टी दिखाई देगी, और जब बैकअप पूरा हो जाएगा, तो एक विंडो दिखाई देगी जिसमें लिखा होगा 'डेटाबेस का बैकअप 'AdventureWorks2012' सफलतापूर्वक पूरा हुआ। '
पहले बताए गए गंतव्य पथ पर नेविगेट करें, (इस मामले में C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\ ) आप अपनी नई बनाई गई फ़ाइल देखेंगे (इस मामले में AdventureWorks2012-081418.bak ) - बधाई हो! यह फ़ाइल आपके डेटाबेस का पूर्ण निर्यात है और नए सर्वर पर आयात करने के लिए तैयार है। यदि आपके पास अधिक डेटाबेस हैं, तो आपके द्वारा स्थानांतरित किए जा रहे प्रत्येक डेटाबेस के लिए उपरोक्त चरणों को दोहराएं। सभी डेटाबेस प्रक्रिया को गंतव्य सर्वर पर डेटाबेस को पुनर्स्थापित करने के अगले चरण में कॉपी करने के बाद।
डेटाबेस को गंतव्य सर्वर पर पुनर्स्थापित करना
अब आपके पास स्रोत सर्वर पर आपके सभी डेटाबेस की .bak फ़ाइल होनी चाहिए। इन डेटाबेस फ़ाइलों को गंतव्य सर्वर पर स्थानांतरित करने की आवश्यकता है। आपके डेटा को गंतव्य सर्वर पर ले जाने के कई तरीके हैं; आप यूएसबी, रोबोकॉपी या एफ़टीपी का उपयोग कर सकते हैं। डेटाबेस की प्रतिलिपि बनाने के बाद आप इसे अपने गंतव्य सर्वर पर संग्रहीत कर सकते हैं, हमारे उदाहरण के लिए, हमने इसे C ड्राइव पर C:\dbbackups . नामक फ़ोल्डर में संग्रहीत किया है।
1. Microsoft SQL सर्वर प्रबंधन स्टूडियो खोलें।
2. Windows प्रमाणीकरण या SQL प्रमाणीकरण का उपयोग करके SQL सर्वर में लॉग इन करें।
3. सर्वर का विस्तार करें और डेटाबेस . पर राइट क्लिक करें और डेटाबेस पुनर्स्थापित करें चुनें।
4. डेटाबेस पुनर्स्थापित करें स्क्रीन बहुत हद तक बैक अप डेटाबेस . जैसी दिखती है स्क्रीन। स्रोत के तहत, आप डिवाइस . का चयन करना चाहेंगे डेटाबेस . के बजाय . डिवाइस . का चयन करना आपको किसी फ़ाइल से सीधे पुनर्स्थापित करने की अनुमति देता है। डिवाइस . चुनने के बाद , ब्राउज़ करें आइकन क्लिक करें [...]
5. जोड़ें . चुनें , फिर उस फ़ोल्डर में नेविगेट करें जिसमें आपकी .bak फ़ाइलें रहती हैं। (इस मामले में, C:\dbbackups )।
6. पहले डेटाबेस का चयन करें .bak जिसे आप पुनर्स्थापित करना चाहते हैं और ठीक क्लिक करें।
7. ठीक क्लिक करें और अब आप डेटाबेस आयात करने के लिए तैयार हैं। आयात करने से पहले, आइए बाईं ओर स्थित विकल्प अनुभाग पर एक नज़र डालें। विकल्प . के अंतर्गत आप डेटाबेस को पुनर्स्थापित करने के लिए अन्य कॉन्फ़िगरेशन देखेंगे जैसे कि मौजूदा डेटाबेस को अधिलेखित करें , प्रतिकृति सेटिंग सुरक्षित रखें और पुनर्स्थापित डेटाबेस तक पहुंच प्रतिबंधित करें . इस मामले में, हम किसी मौजूदा डेटाबेस को प्रतिस्थापित नहीं कर रहे हैं इसलिए मैं इन सभी विकल्पों को अनियंत्रित छोड़ दूंगा। यदि आप किसी मौजूदा डेटाबेस को बदलना चाहते हैं (उदाहरण के लिए, बैकअप किए गए डेटाबेस में गंतव्य सर्वर की तुलना में नया डेटा है या आप विकास या उत्पादन डेटाबेस को बदल रहे हैं) तो बस मौजूदा डेटाबेस को अधिलेखित करें चुनें। .
नोट:उन्नत उपयोगकर्ता गंतव्य को छोड़ने में सहज हो सकते हैं, बशर्ते आउटपुट फ़ोल्डर पर अनुमतियां सही हों।8. ठीक क्लिक करना 'डेटाबेस 'AdventureWorks2012' को सफलतापूर्वक पुनर्स्थापित करने वाली पॉपअप विंडो द्वारा इंगित के रूप में पुनर्स्थापना प्रक्रिया शुरू होती है। आपने अपने डेटाबेस को स्रोत से गंतव्य सर्वर पर माइग्रेट कर दिया है।
प्रत्येक डेटाबेस के लिए इस प्रक्रिया को दोहराएं जिसे आप माइग्रेट कर रहे हैं। फिर आप नए सर्वर को इंगित करने के लिए अपनी स्क्रिप्ट/एप्लिकेशन में पथ संदर्भ अपडेट कर सकते हैं, सत्यापित कर सकते हैं कि माइग्रेशन सफल रहा।
Microsoft SQL सर्वर लॉगिन माइग्रेट करना
अपने डेटाबेस को आयात करने के बाद यदि आप अपने SQL लॉगिन का उपयोग करके कनेक्ट करने में असमर्थ हैं, तो आपको 'उपयोगकर्ता के लिए लॉगिन विफल' त्रुटि प्राप्त हो सकती है। (माइक्रोसॉफ्ट एसक्यूएल सर्वर, त्रुटि:18456)। ' क्योंकि डेटाबेस पारंपरिक लॉगिन और उपयोगकर्ता मॉडल में है , लॉग इन को स्रोत सर्वर में अलग से संग्रहीत किया जाता है और क्रेडेंशियल डेटाबेस के भीतर ही समाहित नहीं होते हैं। इस बिंदु से, गंतव्य सर्वर को निहित डेटाबेस उपयोगकर्ता मॉडल . का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है जो लॉगिन को आपके डेटाबेस में और सोर्स सर्वर से बाहर रखता है। तब तक, हमें पारंपरिक मॉडल के हिस्से के रूप में उपयोगकर्ताओं के साथ आगे बढ़ना और बातचीत करना होगा। अपने SQL उपयोगकर्ताओं के माइग्रेशन के साथ आगे बढ़ने के लिए नीचे जारी रखें।
डेटाबेस का बैकअप लेने और पुनर्स्थापित करने से आपका SQL लॉगिन डेटाबेस से संबंधित हो गया (आपके लॉगिन अभी भी सही अनुमतियों के साथ सही डेटाबेस से जुड़े हुए हैं) लेकिन वास्तविक लॉगिन स्वयं नए सर्वर पर स्थानांतरित नहीं हुए। आप SSMS (SQL Server Management Studio) opening खोलकर इसे सत्यापित कर सकते हैं गंतव्य सर्वर पर और सर्वर> सुरक्षा> लॉगिन . पर नेविगेट करना एस। आप देखेंगे कि आपके द्वारा पिछले सर्वर पर बनाए गए किसी भी कस्टम SQL लॉगिन को यहां स्थानांतरित नहीं किया गया था, लेकिन यदि आप सर्वर> डेटाबेस> आपका डेटाबेस (इस मामले में एडवेंचरवर्क्स2012)> सुरक्षा> उपयोगकर्ता पर जाते हैं। आपको डेटाबेस से जुड़ा सही लॉगिन दिखाई देगा।
यदि आपके पास एक या दो SQL उपयोगकर्ता हैं, तो आप केवल सर्वर> डेटाबेस> AdventureWorks2012> सुरक्षा> उपयोगकर्ता में डेटाबेस से उपयोगकर्ता की संबद्धता को हटा सकते हैं , उपयोगकर्ता को सर्वर> सुरक्षा> लॉगिन . में फिर से बनाएं और इसे उचित डेटाबेस में मैप करें।
यदि आपके पास कई लॉगिन हैं, तो आपको नीचे उल्लिखित एक अतिरिक्त प्रक्रिया का पालन करना होगा। सभी SQL उपयोगकर्ताओं को माइग्रेट करने के लिए, एक नई क्वेरी खोलें स्रोत सर्वर पर विंडो और निम्न स्क्रिप्ट चलाएँ:
एसक्यूएल लॉगिन स्क्रिप्ट
+
यह स्क्रिप्ट स्रोत डेटाबेस में दो संग्रहीत कार्यविधियाँ बनाती है जो इन लॉगिन को माइग्रेट करने में मदद करती है। एक नई क्वेरी विंडो खोलें और निम्नलिखित चलाएँ:EXEC sp_help_revlogin
यह क्वेरी एक स्क्रिप्ट को आउटपुट करती है जो गंतव्य सर्वर के लिए नए लॉगिन बनाती है। इस क्वेरी के आउटपुट को कॉपी करें और इसे बाद के लिए सेव करें। आपको इसे गंतव्य सर्वर पर चलाना होगा।
इस क्वेरी के आउटपुट की प्रतिलिपि बनाने के बाद, गंतव्य सर्वर पर SSMS में लॉगिन करें और एक नई क्वेरी विंडो खोलें। पिछली स्क्रिप्ट से सामग्री पेस्ट करें (इसमें लाइनों की एक श्रृंखला होनी चाहिए जो समान दिखती है - लॉगिन:BUILTIN\Administrators
लॉगिन बनाएं [BUILTIN\Administrators] WINDOWS with DEFAULT_DATABASE =[मास्टर]) और हिट निष्पादित करें।
आपने अब सभी SQL लॉगिन को सफलतापूर्वक आयात कर लिया है और अब यह सत्यापित कर सकते हैं कि डेटाबेस आपके पिछले क्रेडेंशियल्स का उपयोग करके गंतव्य सर्वर पर माइग्रेट कर दिए गए हैं।
दृश्यों और संग्रहीत प्रक्रियाओं को माइग्रेट करना
यदि आप विशिष्ट SQL टेप बैकअप का उपयोग कर रहे हैं, तो दृश्य और संग्रहीत कार्यविधियाँ डेटाबेस के साथ माइग्रेट हो जाएँगी। यदि आप दृश्यों और संग्रहीत कार्यविधियों को स्वतंत्र रूप से माइग्रेट करना चाहते हैं, तो नीचे दिए गए निर्देशों का पालन करें।
- स्रोत सर्वर पर Microsoft SQL प्रबंधन स्टूडियो खोलें।
- अपने SQL सर्वर में लॉग इन करें।
- सर्वर और साथ ही डेटाबेस का विस्तार करें ।
- अपने डेटाबेस के नाम पर राइट क्लिक करें और कार्य> स्क्रिप्ट जेनरेट करें पर जाएं ।
- क्लिक करें अगला ।
- हम स्क्रिप्ट संपूर्ण डेटाबेस और सभी डेटाबेस ऑब्जेक्ट को बदल देंगे करने के लिए विशिष्ट डेटाबेस ऑब्जेक्ट चुनें और केवल दृश्यों . की जांच करें और संग्रहीत कार्यविधियाँ।
- अगला क्लिक करें, फ़ाइल में सहेजें विकल्प पर ध्यान दें। सूचीबद्ध फ़ाइल पथ पर ध्यान दें। मेरे मामले में, यह C:\Users\Administrator\Documents\script.sql है - सहेजे गए दृश्यों और संग्रहीत प्रक्रियाओं का पथ।
- क्लिक करें अगला>> अगला>>समाप्त करें, और C:\Users\Administrator\Documents\script.sql चुनें और इसे गंतव्य सर्वर पर कॉपी करें।
- गंतव्य सर्वर पर जाएं, SSMS खोलें और SQL सर्वर में लॉग इन करें।
- File> Open> File पर जाएं या SQL स्क्रिप्ट खोलने के लिए कीबोर्ड शॉर्टकट CTRL+O का उपयोग करें। फ़ाइल का चयन करें C:\Users\Administrator\Documents\script.sql इसे खोलने के लिए।
- आप स्रोत सर्वर से उत्पन्न स्क्रिप्ट देखेंगे जिसमें सभी दृश्य और संग्रहीत कार्यविधियाँ होंगी। निष्पादित करें . क्लिक करें या कीबोर्ड शॉर्टकट F5 का उपयोग करें और स्क्रिप्ट चलाएँ।
अब आपने दृश्यों और संग्रहीत कार्यविधियों को अपने गंतव्य सर्वर पर माइग्रेट कर दिया है! आपके द्वारा माइग्रेट किए जा रहे प्रत्येक डेटाबेस के लिए इस प्रक्रिया को दोहराएं। डेटाबेस प्रशासन में एक छोटा सा मार्गदर्शन एक लंबा रास्ता तय करता है। प्रत्येक SQL सर्वर की अपनी कॉन्फ़िगरेशन और बाधाओं का सामना करना पड़ेगा, लेकिन हमें उम्मीद है कि इस लेख ने आपको अपने Microsoft SQL सर्वर माइग्रेशन के लिए एक मजबूत आधार दिया है।
एक उच्च उपलब्धता, प्लेटफ़ॉर्म-स्वतंत्र SQL सेवा की तलाश है जो आसानी से मापनीय हो और आपके व्यवसाय के साथ विकसित हो सके? लिक्विड वेब पर पेश किए जाने वाले सेवा उत्पाद के रूप में हमारे SQL को देखें। आपके लिए सही समाधान खोजने के लिए हमारे अद्भुत होस्टिंग सलाहकारों में से एक से बात करें!