एक समकालिक अवस्था में 10-20 SQL सर्वर डेटाबेस का बैकअप लेना और पुनर्स्थापित करना?


15

मुझे 10-20 GB के बीच आकार वाले 10-20 SQL Server 2008 R2 डेटाबेस का बैकअप लेना होगा, जबकि वे ऑनलाइन हैं और एक ही एंटरप्राइज़ ऐप द्वारा एक साथ उपयोग किए जाते हैं। मुझे उन्हें एक ऐसे राज्य में पुनर्स्थापित करने की भी आवश्यकता है जो सभी डेटाबेस में बड़े पैमाने पर सिंक्रनाइज़ है (मैं डेटाबेस के बीच desync के कुछ सेकंड तक खर्च कर सकता हूं)। उद्देश्य क्यूए / डीईवी वातावरण के लिए उत्पादन डेटा पर कब्जा करना है।

मैं दृढ़ता से पूर्ण पुनर्प्राप्ति में डेटाबेस की मांग नहीं करना चाहता हूं और एक बैकअप पद्धति के साथ आना चाहता हूं जो कि क्यूए वातावरण के लिए डेटा कैप्चर करने के लिए समर्पित है और एक मुख्य बैकअप प्रक्रिया से स्वतंत्र रहता है जो मेरे नियंत्रण में नहीं है।

मेरे ग्राहकों के लिए, प्रत्येक 30 ~ 30 जीबी पर 20 पूर्ण बैकअप लेने में 1-2 घंटे का समय लगेगा। यह पूर्ण बैकअप को क्रमिक रूप से अस्वीकार्य बनाता है क्योंकि साधारण रिकवरी में चलने पर डेटाबेस बहुत अधिक वंशानुगत होगा।

मुझे इनसे बेहतर एक विचार की तलाश है:

आईडिया 1: वीएम डिस्क के सैन-स्तरीय स्नैपशॉट। स्नैपशॉट से xcopy MDF / LDFs।

एक बार जब कॉपी की गई फाइलें एक अलग सर्वर उदाहरण से जुड़ी होती हैं, तो इसकी पुनर्प्राप्ति प्रक्रिया को लगातार डेटाबेस का उत्पादन करना चाहिए जो एक साथ बहुत अधिक स्नैपशॉट हैं।
मेरे चारों ओर घूमना मुझे विश्वास दिलाता है कि यह एक बुरा विचार है, कम से कम क्योंकि मुझे desync बनाम मास्टर / msdb / etc मिल सकता है।

आईडिया 2: सभी डेटाबेस में एक जटिल बैकअप और सिंक-रिस्टोर को ऑर्केस्ट्रेट करें

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

क्या मुझे कोई और उपाय याद आ रहा है?

PS1: मुझे db स्नैपशॉट का उपयोग करने में सक्षम होना पसंद था । यह विचार था कि प्रत्येक db पर एक स्नैपशॉट आरंभ किया जाए (जो कुछ सेकंड में समाप्त हो जाए), फिर निम्नलिखित मिनटों / घंटों में क्रमिक रूप से हर एक का बैकअप लें। फिर उन सभी को एक अलग सर्वर पर पुनर्स्थापित करें और प्रत्येक को स्नैपशॉट पर वापस लाएं। AFAIK यह परिदृश्य संभव नहीं है क्योंकि स्नैपशॉट को डेटाबेस के साथ बैकअप नहीं दिया जा सकता है। वे केवल उस जगह पर वापस रोल कर सकते हैं, जहां वे बनाए गए थे। इसके अलावा, उन्हें एंटरप्राइज़ संस्करण की आवश्यकता होती है, जो मेरे पास सभी ग्राहकों के लिए नहीं है।

PS2: यदि आप क्रॉस-डीबी सिंक्रोनाइज़्ड बैकअप के उत्पादन में सक्षम तृतीय पक्ष समाधान के बारे में जानते हैं तो कृपया इसका उल्लेख करें।


इसके संस्करण के साथ इस परिदृश्य के लिए SQL सर्वर का संस्करण क्या है? और लगभग जो डेटाबेस हम यहाँ बात कर रहे हैं उसका आकार क्या है?
KASQLDBA

जवाबों:


12

मुझे एक एंटरप्राइज़ ऐप द्वारा एक साथ उपयोग किए जाने वाले 10-20 एसक्यूएल सर्वर डीबीएस का बैकअप लेना होगा, जबकि वे ऑनलाइन हैं, इस तरह से उन्हें एक राज्य में पुनर्स्थापित करने के लिए जो बड़े पैमाने पर सभी डीबीएस में सिंक्रनाइज़ किया जाता है।

आप जो देख रहे हैं वह आपके सभी ग्राहक डेटाबेस में एक सुसंगत बैकअप है, आपको पूर्ण बैकअप के साथ-साथ Marked Transactions(बोल्ड अतिरिक्त में जोर) का उपयोग करना चाहिए :

जब आप दो या अधिक डेटाबेस, संबंधित डेटाबेस से संबंधित अपडेट करते हैं , तो आप उन्हें तार्किक रूप से सुसंगत बिंदु पर पुनर्प्राप्त करने के लिए लेनदेन के निशान का उपयोग कर सकते हैं । हालाँकि, यह पुनर्प्राप्ति किसी भी लेन-देन खो देता है जो पुनर्प्राप्ति बिंदु के रूप में उपयोग किए गए चिह्न के बाद प्रतिबद्ध है। जब आप संबंधित डेटाबेस का परीक्षण कर रहे हों या जब आप हाल ही में किए गए लेन-देन को खोने के लिए तैयार हों तो लेनदेन को चिह्नित करना उचित है।

यहाँ छवि विवरण दर्ज करें

सुनिश्चित करें कि आप एडहॉक ट्रांजेक्शन लॉग बैकअप लेते हैं COPY_ONLY, अन्यथा आपकी रिकवरी में दर्द होगा, क्योंकि बिना एडहॉक ट्रांजैक्शन लॉग बैकअप COPY_ONLYलॉग चेन को तोड़ देगा। सावधानी के तौर पर, आप उपयोगकर्ताओं को केवल COPY_ONLY बैकअप लेने के लिए प्रतिबंधित कर सकते हैं

मुझे SQL Server संस्करण 2008 R2 और बाद के लिए समाधान की आवश्यकता है। डीबी का आकार 50 जीबी प्रति डीबी तक है और इन सभी का बैकअप लेने का समय 1-2 घंटे से अधिक है।

चिह्नित लेनदेन आपकी स्थिति के लिए काम करेंगे। समानांतर बैकअप बनाने के लिए केवल एक चीज है STRIPE, लेकिन फिर आप यह सुनिश्चित करते हैं कि आप बैकअप की अपनी धारियों को नहीं खोते हैं। उन्हें तेज करने के लिए, आप के साथ BUFFERCOUNTऔर खेल सकते हैं MAXTRANSFERSIZE

आपको बैकअप संपीड़न का उपयोग करना चाहिए और साथ ही त्वरित फ़ाइल आरंभीकरण को सक्षम करना चाहिए ।

को देखें


1
बस एक छोटा सा नोट, not usingबैकअप कम्प्रेशन बैकअप को और भी तेज़ कर सकता है ... अगर आपके पास इसके लिए स्टोरेज स्पेस है।

4
धीमी भंडारण पर, मुझे संदेह है कि संपीड़न ओवरहेड उचित से अधिक होगा, क्योंकि I / O पर सहेजे गए समय सीपीयू पर खर्च किए गए अतिरिक्त समय से आगे निकल जाएंगे। तेजी से भंडारण पर, संपीड़न के लाभ भंडारण स्थान पर बहुत अधिक भारित होते हैं।
हारून बर्ट्रेंड

@ शवमेलन मैं आपसे सहमत होगा, लेकिन बैकअप ट्रांसफर करते समय, संपीड़ित बैकअप ट्रांसफर करने के लिए बहुत तेज होगा। बैकअप संपीड़न (भंडारण सबसिस्टम पर निर्भर करता है), लेकिन सोच संपीड़न से लाभ के बारे में बिना तेजी से हो सकता है, मैं करते हैं मेरी वातावरण में पर यह स्विच ऑन करने के लिए।
परिजन शाह

@ नहीं, मुझे नहीं लगता कि एम-लेनदेन यहां एक समाधान है क्योंकि: ए) वे एक अलग सर्वर पर काम करने के लिए डिज़ाइन नहीं करते हैं जहां बैकअप लिया गया था। कुछ लोगों ने इसके चारों ओर logmarkhistory में पंक्तियों को पुनर्स्थापित करके प्राप्त किया, लेकिन मैं अनिर्दिष्ट व्यवहार का उपयोग नहीं कर सकता। बी) मैं अपने ऐप के लिए एम-लेनदेन के लिए समर्थन जोड़ने के लिए कोड नहीं बदल सकता। मुझे अपनी बैकअप लिपियों से विशेष एम-लेन-देन शुरू करने की आवश्यकता होगी और अगर मुझे सही तरीके से समझ में आ जाए , तो वे सभी नए लेन-देन को तब तक रोकते हैं, जब तक कि वे निशान से बड़े नहीं हो जाते। यह ऐप की उपलब्धता को प्रभावित करता है जो एक प्रमुख स्टॉपर है।
बोगदान

3
यह थोड़ा अस्पष्ट हो रहा है कि आप वास्तव में यहां क्या पूछ रहे हैं। पहले आपके पास पूर्ण पुनर्प्राप्ति में एक वातावरण है, फिर आपके पास अपनी स्वयं की बैकअप रणनीति के साथ कई ग्राहक हैं। आप एप्लिकेशन परत को बदलना नहीं चाहते हैं, आप कोई sql बैकअप नहीं लेना चाहते हैं, और आप किसी भी ब्लॉक स्तर की प्रतिकृति नहीं चाहते हैं, फिर भी आप समाधान की अपेक्षा करते हैं। आवश्यकताओं में वह सब कुछ बदलता रहता है जिसमें वास्तविक 'काम' शामिल होता है। दुर्भाग्यवश हमारे पास एक जादुई.स्टैकएक्सचेंज.कॉम वेबसाइट नहीं है।
टॉम वी - की कोशिश करें topanswers.xyz

7

यदि आप पूर्ण बैकअप के साथ-साथ लेन-देन लॉग बैकअप भी चला रहे हैं (और यदि आपको इस डेटा को महत्वपूर्ण मानते हैं तो आपको चाहिए) तो आप बस बैकअप और लेनदेन लॉग बैकअप को परीक्षण प्रणाली में कॉपी कर सकते हैं और डेटाबेस को पुनर्स्थापित करने के लिए पुनर्स्थापित करने के लिए समय में एक बिंदु का प्रदर्शन कर सकते हैं + - एक ही समय।

सभी डेटाबेस एक ही SQL सर्वर मशीन पर रहते हैं या कितनी अच्छी तरह से सर्वर घड़ियां सिंक्रनाइज़ हैं पर निर्भर करता है कि आप 'सेकंड desynchronization' लक्ष्य से मेल खाने में सक्षम होना चाहिए।

यह एक बैंड-सहायता समाधान का एक सा हो सकता है लेकिन आवश्यकताओं को पूरा करेगा और काफी सरल और सस्ती होगा।

यदि आपके पास अपने महत्वपूर्ण डेटाबेस (जो पूर्ण पुनर्प्राप्ति में हैं) से पूर्ण बैकअप और लेनदेन लॉग बैकअप नहीं है, तो आपको वास्तव में अपनी बैकअप रणनीति को संशोधित करने की आवश्यकता है। SAN स्तर स्नैपशॉट वास्तव में पूर्ण पुनर्प्राप्ति मोड में डेटाबेस होने के बिंदु को लूटता है क्योंकि आप किसी भी समय पुनर्स्थापना करने में सक्षम नहीं होंगे।

कृपया पढ़ें कि इसके बारे में मिडेनी का क्या कहना है



1

जिन परिस्थितियों के बारे में आपने संकेत दिया है, क्या आपने वीएसएस प्रदाता के माध्यम से वीएसएस बैकअप को देखा है जो कि 3 जी या माइक्रोसॉफ्ट आधारित है? आप एक COPY_ONLY बैकअप कर सकते हैं जो आपकी उत्पादन पुनर्प्राप्ति श्रृंखला को नहीं तोड़ेगा और आपको उन सभी डेटाबेस के बैकअप के साथ समाप्त होना चाहिए जिन्हें आप तब अपने उचित मार्जिन के भीतर कहीं और पुनर्प्राप्त कर सकते हैं। ध्यान रखें कि VSS बैकअप में डेटाबेस स्नैपशॉट के समान ही कुछ तंत्र और खराबी होती है, जिसमें एक बहुत ही सक्रिय डेटाबेस उपयोग की जाने वाली विरल फाइलों के कारण डिस्क स्पेस समस्या पैदा कर सकता है। एसक्यूएल लेखक सेवा पर TechNet संसाधनों पर एक नज़र डालें यहाँ और SQL सर्वर के वीएसएस बैकअप यहाँ

विंडोज सर्वर बैकअप के माध्यम से ऐसा करने के लिए आप मैन्युअल बैकअप के लिए विजार्ड चरणों का पालन करेंगे ताकि आप वीएसएस सेटिंग्स के तहत कस्टम कॉन्फ़िगरेशन सेटिंग्स पर वीएसएस कॉपी बैकअप का चयन कर सकें। यह आपके विंडोज सर्वर बैकअप को सर्वर पर लिए गए किसी भी अन्य बैकअप के साथ हस्तक्षेप नहीं करने देगा। देखें Windows सर्वर बैकअप संदर्भ जानकारी के लिए।


मैंने वीएसएस को हाइपरविजर / SAN स्तर पर डिस्क स्नैपशॉट लेने के विकल्प के रूप में माना। मैंने सरल वसूली का उपयोग करने वाले ग्राहकों के लिए इन मामलों को अपने समाधान में शामिल किया (अब एक अतिरिक्त उत्तर के रूप में पोस्ट किया गया)।
बोगदान

1

मैं @ Kin के जवाब के रूप में वोट करूँगा क्योंकि यह पहला ऐसा मिलान था जो प्रश्न पूछा गया था। मैंने एक अतिरिक्त उत्तर ढूंढना समाप्त कर दिया और मैं इसका वर्णन नीचे करूँगा।

सरल रिकवरी मॉडल का उपयोग करने वाले ग्राहकों के लिए, मुझे हाइपरविजर या SAN स्तर पर T0 में लिए गए एक अस्थायी डिस्क स्नैपशॉट से निकाले गए MDF और LDF की कॉपी की आवश्यकता होगी। मैं T0 से राज्य में dbs को पुनर्प्राप्त करने के लिए इनका उपयोग कर सकता हूं।

पूर्ण पुनर्प्राप्ति मॉडल का उपयोग करने वाले ग्राहकों के लिए मुझे या तो आवश्यकता होगी:

  • T0 को कवर करने वाले बाद के लेन-देन लॉग बैकअप की T0 + न्यूनतम श्रृंखला से पहले पूरी की गई नवीनतम पूर्ण बैकअप की अपनी मुख्य बैकअप प्रक्रिया से प्रतियां। मैं तो T0 के लिए समय वसूली में एक बिंदु प्रदर्शन कर सकते हैं।

  • अपने स्वयं के सहायक COPY_ONLYबैकअप करने के लिए प्रवेश । मैं उन सभी को T0 पर समानांतर में शुरू करूँगा, जिन्हें कुछ सेकंड से अधिक नहीं लेना चाहिए और यह मेरा मुख्य नंबर 1 चिंता का विषय था। फिर, पुनर्स्थापना पर, मैं प्रत्येक बैकअप से FirstLSN को समय पुनर्प्राप्ति में एक बिंदु का प्रदर्शन करूँगा । इस की सुंदरता यह है कि मुझे MAIN बैकअप प्रक्रिया के साथ बिल्कुल भी बातचीत करने की आवश्यकता नहीं है, जो कि मेरी अन्य चिंता थी, वे लॉग को काट भी सकते हैं जबकि मेरे COPY_ONLYबैकअप उनके सुसंगतता को प्रभावित किए बिना चल रहे हैं।


0

मैं क्यूए और अन्य वातावरणों के लिए वर्ष में कई बार ऐसा करता हूं जो उत्पादन की प्रतियां हैं। पुनर्स्थापित करने के लिए, पूर्ण पुनर्प्राप्ति मोड वास्तव में आवश्यक है और समय में एक बिंदु पर पुनर्स्थापित करना अच्छी तरह से काम करता है। बहुत अधिक प्रतिकृति भी है और यह दुर्लभ है कि समय में एक बिंदु पर बहाल करने के बाद हमारे पास 'पंक्ति नहीं मिली' त्रुटियां हैं। हम उत्पादन के भौगोलिक रूप से दूर की प्रतिलिपि के लिए SAN क्लोन / स्नैपशॉट विधि का भी उपयोग करते हैं और यह भी डेटाबेस को सिंक्रनाइज़ करने के लिए अच्छी तरह से काम करता है।

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