लाइव SQL सर्वर बैकअप के दौरान क्या होता है?


18

मेरे कुछ सहकर्मी आश्चर्यचकित थे जब मैंने उन्हें बताया कि मैं SQL सर्वर डेटाबेस का बैकअप ले सकता हूं जबकि यह अभी भी चल रहा है और आश्चर्य है कि यह कैसे संभव है। मुझे पता है कि SQL सर्वर एक डेटाबेस का बैकअप लेने में सक्षम है, जबकि यह अभी भी ऑनलाइन है लेकिन मुझे यकीन नहीं है कि यह कैसे समझा जाए कि यह कैसे संभव है। मेरा सवाल यह है कि डेटाबेस पर इसका क्या प्रभाव पड़ता है?

यदि बैकअप चल रहा है, तो डेटा संशोधित किया जाता है (एक इन्सर्ट, अपडेट या डिलीट द्वारा), क्या बैकअप में वे परिवर्तन होंगे या इसे बाद में डेटाबेस में जोड़ा जाएगा?

मैं मान रहा हूँ कि लॉग फ़ाइल यहाँ एक महत्वपूर्ण भूमिका निभाती है लेकिन मुझे यकीन नहीं है कि कैसे।

संपादित करें: एक नोट के रूप में, मेरे मामले में SQL सर्वर एजेंट का उपयोग कर डेटाबेस का बैकअप लेना और इस प्रक्रिया के दौरान डेटाबेस संशोधनों का प्रभाव शामिल है।

जवाबों:


24

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

जब डेटाबेस को पुनर्स्थापित किया जाता है, तो सभी डेटा पृष्ठों को डेटाबेस फ़ाइलों में कॉपी किया जाता है, फिर सभी लॉग पेजों को लॉग फाइल (ओं) में कॉपी किया जाता है। डेटाबेस इस समय असंगत है, क्योंकि इसमें डेटा पृष्ठ छवियां हैं जो एक दूसरे के साथ सिंक से बाहर हो सकती हैं। लेकिन अब एक सामान्य वसूली चल रही है। चूंकि लॉग में बैकअप के दौरान सभी लॉग होते हैं, रिकवरी के अंत में डेटाबेस सुसंगत होता है।


1
महान पोस्ट और लिंक ने एक अच्छा उदाहरण प्रदान करने में मदद की। धन्यवाद।
सीन होवत

बहुत संक्षिप्त। बहुत बढ़िया!
एलन 1

2

बैकअप के दौरान, डेटाबेस के लिए स्नैपशॉट बनाया जाएगा और डेटा उस स्नैपशॉट से बैकअप के लिए पढ़ा जाएगा। वास्तविक लाइव DB ऑपरेशन बैकअप ऑपरेशन को प्रभावित नहीं करेगा।


1

जब तक आप प्रश्न में हल किए गए हैं तब तक आप इसे केवल डेटाबेस की मध्य-प्रति में परिवर्तन नहीं कर सकते हैं।

यह उन एजेंटों के साथ किया जाना चाहिए जो डेटाबेस कार्यक्षमता के बारे में जानते हैं और फिर ओएस फ़ंक्शन के माध्यम से "स्नैपशॉट" लेते हैं या डेटाबेस को एक सुरक्षित स्थिति में डंप करने के लिए उपयोगिता का उपयोग कर सकते हैं (जैसे mysqldump, अगर mysql का उपयोग करके)।

अन्यथा आपको एक बैकअप मिलता है जिसे दूषित किया जा सकता है और जब तक आप इसे बहाल नहीं करते तब तक आपको इसका पता नहीं चलेगा। मुझे लगता है कि हाल ही में स्टैकऑवरफ्लो पॉडकास्ट पर जोएल और जेफ ने इसके बारे में थोड़ी बात की।

और आप सही हैं कि लॉग फ़ाइल महत्वपूर्ण है। यदि जर्नल / लॉग फ़ाइल वास्तविक डेटा के साथ सिंक से बाहर है, तो फ़ाइलों को पुनर्स्थापित करने से भ्रष्टाचार होगा।

यह डेटाबेस के एक सुरक्षित राज्य का उपयोग कर लिया गया बैकअप के लिए उबलता है, या तो डेटाबेस-जागरूक एजेंट या स्नैपशॉट एप्लिकेशन या एप्लिकेशन के माध्यम से, जो डेटा डंप के दौरान अद्यतनों के साथ डेटाबेस को छोड़ने के डेटा को ठीक से हुक करने के लिए कैसे पता चलता है। परिणामी फ़ाइल ऊपर।


यह एक अधिक सामान्यीकृत उत्तर है, लेकिन मैं यह शामिल करना भूल गया कि मैं पहले SQL सर्वर एजेंट के माध्यम से काम कर रहा था। इसने इस प्रक्रिया के दौरान इस प्रक्रिया के दौरान क्या हो सकता है, इसके बारे में कुछ अच्छे विवरण उपलब्ध कराए ताकि इसने किसी भी तरह से मदद की! धन्यवाद।
सीन होवत

0

ऐसा करने के लिए बहुत सारे तरीके हैं (आम तौर पर बोलना, कोई विचार नहीं है कि MSSQL आम तौर पर यह कैसे करता है) जैसे कि डंप पूरा होने के बाद किए गए लॉग फ़ाइल में किसी भी बदलाव को जोड़ते हुए डेटाबेस को फाइल में डंप करना - फाइल सिस्टम विशिष्ट स्नैपशॉट का उपयोग करने के लिए विंडोज पर VSS जैसी सुविधाएँ।


इसके अलावा डेटाबेस जो ग्राउंड अप (पोस्टग्रेस की तरह) से MVCC हैं, स्नैपशॉट बनाए रखने के लिए व्यवहार के उस सेट का उपयोग कर सकते हैं जो बैकअप कॉपी के दौरान शुरू होने वाले लेन-देन द्वारा डेटाफ़ाइल्स को अपडेट की अनुमति देते हुए बैकअप प्रतिलिपि बनाता है। जैसा कि आप कहते हैं कि कई विधियाँ हैं, एक का उपयोग डेटा भंडारण इंजन और लेनदेन प्रसंस्करण सुविधाओं के मूल डिजाइन पर निर्भर करता है।
डेविड स्पिललेट

-1

आप केवल-बैकअप के रूप में ज्ञात व्हाट्स ले सकते हैं। अपने ऑनलाइन रहते हुए डेटाबेस को प्रभावित नहीं करेगा


कॉपी-ओनली बैकअप क्या है? यह कैसे किया जाता है? क्या विचार करने के लिए कोई चेतावनी है? ऐसे जानवर के उदाहरण के लिए कोई लिंक चलाया जा रहा है? यदि आप एक उत्तर प्रस्तुत करने जा रहे हैं तो कल्पना करें कि 2-3 वर्षों में किसी के पास यह प्रश्न होने पर क्या उपयोगी हो सकता है।
rnxrx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.