एक गैर- DBA पूछता है: बैकअप / पुनर्स्थापना के माध्यम से किसी अन्य सर्वर पर SQL सर्वर आवृत्ति को कैसे कॉपी / स्थानांतरित करें?


11

हमें अभी नया सर्वर मिला है इसलिए मुझे पुराने db बॉक्स से मौजूदा SQL Server 2008 के उदाहरण को कॉपी करने की आवश्यकता है।

मैं आम तौर पर नकल करके .mdf और फ़ाइलों को लॉग इन करता हूं और उन्हें अटैच करता हूं, लेकिन मैं dbs ऑफ लाइन नहीं ले पा रहा हूं क्योंकि वे 24/7 उपयोग किए गए हैं इसलिए मैंने डेटाबेस का समर्थन किया है और उन्हें नए पर पुनर्स्थापित किया है मशीन। हालाँकि मैं कुछ मुद्दों के साथ समाप्त हो गया हूँ जिनमें से एक अनाथ उपयोगकर्ताओं से संबंधित है । तो मैं जो खोज रहा हूं, वह कम से कम उपद्रव / परेशान / सिरदर्द के साथ सब कुछ स्थानांतरित करने के लिए एक असफल-सुरक्षित प्रक्रिया है । मैं अपने बेल्ट के नीचे उचित मात्रा में एसक्यूएल के साथ एक नेट देवता हूं, लेकिन एसक्यूएल सर्वर के आंतरिक कामकाज मेरे लिए काफी हद तक एक रहस्य है और मुझे एमएस प्रलेखन को ट्रैवेल के लिए दर्दनाक लगता है।

कृपया मदद कीजिए।


1
आप इस पिछले प्रश्न में कुछ विचार पा सकते हैं । लेकिन पिछले जवाब बहुत व्याख्यात्मक हैं। मुझे लगता है कि सबसे अच्छा विचार सभी दर्पणों के लिए मिररिंग स्थापित करना और उसके बाद तोड़ना होगा, या एक लॉग शिपिंग (केवल विज़ार्ड से कर सकते हैं) और बस आवश्यक लॉग बैकअप को पुनर्स्थापित करना होगा, लेकिन अगर आप कहते हैं कि आप डीबीए नहीं हैं , तो शायद बैकअप विधि बेहतर है।
मैरियन

जवाबों:


10

यदि आप डेटाबेस को ऑफ़लाइन नहीं ले जा सकते हैं, तो आपको बैकअप / रिस्टोर करने की आवश्यकता है। मैं निम्नलिखित सुझाव दूंगा:

  1. एमडीएफ और एलडीएफ फ़ाइलों के लिए पुराने बॉक्स के समान फ़ाइल संरचना का उपयोग करके, नए बॉक्स पर SQL 2008 स्थापित करें।
  2. पुराने बॉक्स पर सभी डेटाबेस का बैकअप लें।
  3. SQL को एकल उपयोगकर्ता मोड में शुरू करने वाले पुराने बॉक्स से नए बॉक्स में मास्टर को पुनर्स्थापित करें। मास्टर विधि को पुनर्स्थापित करें
  4. भविष्य के डिफ या टी-लॉग बैकअप को लागू करने में सक्षम होने के लिए NORECOVERY विकल्प के साथ पुराने बॉक्स से नए बॉक्स में प्रत्येक डेटाबेस को पुनर्स्थापित करें।
  5. पुराने बॉक्स से नए बॉक्स में msdb को पुनर्स्थापित करें।

यदि आप पुराने बॉक्स की तरह दिखने के लिए नए बॉक्स का निर्माण और कॉन्फ़िगर करते हैं, तो आपके पास न्यूनतम उपद्रव होगा।

मुझे नहीं पता कि आपके डेटाबेस कितने बड़े हैं, इसलिए इस विधि में लंबा समय लग सकता है। सबसे आसान काम पुराने बॉक्स को बंद करना होगा और एमडीएफ और एलडीएफ फाइलों को कॉपी करना होगा और फिर (मास्टर को बहाल करने के बाद) आपको केवल अपने डेटाबेस को ऑनलाइन करने के लिए SQL को पुनरारंभ करना होगा। लेकिन आपने कहा था कि एक विकल्प नहीं है, क्योंकि डेटाबेस को ऑफ़लाइन होने की अनुमति नहीं है।


3
बैकअप लेने के बाद किए गए किसी भी डेटा परिवर्तन की नकल करना न भूलें। आप एक अलग बैकअप ले सकते हैं या बैकअप ले सकते हैं और इसे ऊपर आने के बाद नए सर्वर पर लागू कर सकते हैं, लेकिन इससे पहले कि आप स्विच करें।
एरिक हम्फ्रे - लॉटहेल्प

अच्छी बात है, मैं यह भी उल्लेख करना भूल गया। शायद मुझे एक db दर्पण विन्यास शामिल करना चाहिए, जिसे बाद में तोड़ा जा सकता है?
SQLRockstar

1
मुझे लगता है कि किसी के पास पहले से ही सर्वरों को स्थानांतरित करने के विभिन्न तरीकों पर एक व्यापक लेख है। इसके अलावा, यहाँ एक नए सर्वर पर लॉगिन करने के लिए एक लेख दिया गया है: support.microsoft.com/kb/246133
एरिक हम्फ्रे - लॉटाहेल्प

8

आप 24/7 ऑपरेशन का उल्लेख करते हैं, इसलिए ऐसा करने का सबसे अच्छा तरीका नई प्रणाली पर एक डेटाबेस दर्पण बनाना है, तो आप बस न्यूनतम - शायद शून्य के साथ स्विच कर सकते हैं, यह निर्भर करता है कि आपका एप्लिकेशन कैसे संरचित है - क्लाइंट का उपयोग करते हुए डाउनटाइम पक्ष पुनर्निर्देशित। बुनियादी कदम हैं:

  1. सुनिश्चित करें कि आपका प्राथमिक डेटाबेस पूर्ण पुनर्प्राप्ति मोड में चल रहा है
  2. प्राथमिक बैकअप लें और इसे दर्पण पर पुनर्स्थापित करें WITH NORECOVERY
  3. दोनों सर्वरों पर "एंडपॉइंट्स" बनाएँ, और कनेक्टिविटी सुनिश्चित करें (जैसे फ़ायरवॉल नियम), पोर्ट और आईपी पते को सही ढंग से सेट करना) जैसे:

    CREATE ENDPOINT endpoint1
    STATE=STARTED AS TCP(LISTENER_PORT = 5222, LISTENER_IP = 192.168.1.5) 
    FOR DATA_MIRRORING(ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM RC4)
  4. दर्पण पर दर्पण सेट करना, प्राथमिक की ओर इशारा करता है:

    ALTER DATABASE GaiusMirrorDB SET PARTNER = 'TCP://192.168.1.5:5222'
    go
    EXEC sys.sp_dbmmonitoraddmonitoring
    go
  5. और प्राथमिक पर, दर्पण की ओर इशारा करते हुए (बस एक अलग डेटाबेस का नाम और आईपी पता।

  6. फिर, जब समय आता है, बस दर्पण पर प्राथमिक पर स्विच करें:

    ALTER DATABASE GaiusDB SET PARTNER FAILOVER
    GO

नोट: मैं मान रहा हूं कि ये दोनों सर्वर एक ही नेटवर्क पर हैं, इसलिए सिंक्रोनस मोड में काम करना ठीक रहेगा। यदि यह WAN लिंक पर है, तो Async मोड का उपयोग करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.