SQL सर्वर लेन-देन बैकअप बनाम लॉग


12

मुझे मध्यम आकार का व्यावसायिक-महत्वपूर्ण SQL Server 2008 डेटाबेस विरासत में मिला है और बैकअप प्लानिंग के आसपास अपना सिर लपेटने की कोशिश कर रहा हूं। (मैं एक डेवलपर हूं, डीबीए नहीं।)

जिस तरह से हमारा सिस्टम अभी सेट किया गया है उसमें दो बैकअप सिस्टम हैं:

  1. साप्ताहिक पूर्ण बैकअप ( .bak) और प्रति घंटा लेनदेन लॉग ( .trn) बैकअप। हम इन बैकअप के कई सेट रखते हैं और इन्हें नियमित रूप से ऑफसाइट भेज दिया जाता है।
  2. SQL सर्वर लॉग ( .ldf), पुनर्प्राप्ति मॉडल के साथ सेट किया गया Full। यह फ़ाइल मुख्य .mdfफ़ाइल से अलग ड्राइव पर है , लेकिन अन्यथा बैकअप नहीं है।

आपातकालीन पुनर्स्थापना (या जब एक देव मशीन पर बैकअप बहाल करने) की स्थिति में, मेरी प्रक्रिया .bakफ़ाइलों का उपयोग करना है और फिर .trn फ़ाइलों को लागू करना है। हमारे पास एक स्क्रिप्ट है जो इस प्रक्रिया को अपेक्षाकृत सरल बनाती है।

मेरे सवाल:

  1. क्या .ldfफ़ाइल से डेटाबेस को पुनर्स्थापित करना संभव है ? इसके लिए भी क्या है?
  2. क्या यह अनावश्यक रूप से इन दोनों लेन-देन लॉग के लिए अनावश्यक है?
  3. क्या .ldfफ़ाइल का बैकअप लेना महत्वपूर्ण है ?

जवाबों:


16

नहीं, एक ldf फ़ाइल से डेटाबेस को पुनर्स्थापित करना संभव नहीं है। Mdf फ़ाइलों के साथ ldf फ़ाइल को पुनर्स्थापित किया जाएगा।

नहीं, यह निरर्थक नहीं है क्योंकि उनके दो अलग-अलग उद्देश्य हैं।

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

जैसा कि एक ldf फ़ाइल है, ldf लेन-देन लॉग है। इसे एक परिपत्र बफ़र के रूप में सोचें जो आपके डेटाबेस में परिवर्तन रिकॉर्ड करता है। जब आप एक पंक्ति को अपडेट करते हैं, तो परिवर्तन तुरंत ldf को लिखा जाता है। भविष्य में कुछ बिंदु पर (आमतौर पर पांच मिनट से कम), संशोधित डेटा को mdf फ़ाइल में लिखा जाता है।

यदि सर्वर क्रैश हो जाता है या एसक्यूएल शुरू होने पर बिजली की विफलता होती है, तो यह ldf पढ़ता है और उन परिवर्तनों को फिर से लागू (REDO) करता है।

इसके अतिरिक्त, यदि आपके पास कोई ऐसा लेन-देन है, जो शुरू नहीं हुआ है और गंभीर रूप से दुर्घटनाग्रस्त हो गया है, तो उस लेनदेन द्वारा किए गए सभी परिवर्तन डेटाबेस को सुसंगत बनाने के लिए पूर्ववत होना है। Ldf फ़ाइल में वह कार्य भी है। (पूर्ववत करें)

मैंने ऊपर उल्लेख किया है कि ldf फ़ाइल परिपत्र है। लेन-देन लॉग बैकअप (.trn) लेना ldf फ़ाइल के एक हिस्से की प्रतिलिपि बनाता है। एक trn फ़ाइल सुरक्षित रूप से बनाए जाने के बाद, sql ldf फ़ाइल के उस हिस्से का पुन: उपयोग कर सकता है। टीआरएन बैकअप की श्रृंखला एक श्रृंखला बनाती है जो डेटाबेस में किए गए प्रत्येक संशोधन को एक साथ रिकॉर्ड करती है। बेशक, यदि आपने कभी भी एक लेन-देन लॉग बैकअप नहीं लिया है, तो ldf फ़ाइल बढ़ेगी और बढ़ेगी और बढ़ेगी।

एक आपदा परिदृश्य में, पूर्ण बैकअप को पुनर्स्थापित करने से आपको उस डेटाबेस की एक प्रति मिल जाती है जब पूर्ण बैकअप समाप्त हो जाता है। तब आप क्रम में trn फ़ाइलों को पुनर्स्थापित कर सकते हैं और अंतिम trn बैकअप सहित डेटाबेस को किसी भी समय में चालू कर सकते हैं।

मैं कुछ महत्वपूर्ण विवरणों के बारे में बता रहा हूँ, लेकिन यह है कि ldf एक कार्यशील फ़ाइल है जो डेटाबेस में हाल के परिवर्तनों को रिकॉर्ड करती है। ट्रॉन फाइलें इस धारणा के तहत बनाई गई ldf के कुछ हिस्सों की प्रतियाँ हैं जिन्हें आप तब सुरक्षित रखेंगे ताकि sql ldf में स्थान का पुन: उपयोग कर सके और यदि आपदा आती है, तो आप उन्हें एक वैकल्पिक स्थान पर रख देंगे।


2
+1 बहुत अच्छा जवाब। मैं केवल इतना जोड़ूंगा कि जब एक डीबीए "डेटाबेस" कहता है, तो उनका अर्थ है .mdf (डेटा फ़ाइल) और .ldf (लॉग फ़ाइल) संयुक्त फाइलें। दो फाइलें मिलकर एक एकल इकाई बनाती हैं। कुछ डेटाबेस पर आप कई .mdfs और / या .ndfs (द्वितीयक डेटा फ़ाइलें) भी देख सकते हैं। डेटाबेस नामक एकल इकाई को बनाने के लिए इन फ़ाइलों को भी एक साथ जोड़ दिया जाता है। यदि आप उनमें से किसी को भी खो देते हैं तो आप एक आपदा मोड में हैं और सुधारात्मक कार्रवाई करनी होगी।
केनेथ फिशर

+1 अच्छा उत्तर, सिस्टम में रहते हुए भी 'भौतिक फ़ाइल' (वास्तविक .mdf / .ndf / .ldfs) का बैकअप लेने में गलती न करें, यहां तक ​​कि नॉर्टन जैसे 3 पार्टी ऐप के साथ भी जबकि एमएस SQL ​​सर्वर चल रहा है। एक सुरक्षित 'बैकअप'। वे फाइलें अत्यधिक संवेदनशील हैं, इस प्रकार वास्तविक एमएस SQL ​​सर्वर बैकअप फाइलें हमेशा संभव होने पर बनाई जानी चाहिए।
अली रज़ेगी

धन्यवाद, यह बहुत मददगार है। ऐसा लगता है कि हमारी नियमित SQL सर्वर बैकअप योजनाएँ पर्याप्त हैं, और सीधे .mdf या .ldf फ़ाइलों के साथ छेड़छाड़ करने की कोई आवश्यकता नहीं है।
हांक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.