SQL लॉग फ़ाइल आकार को बनाए रखने के लिए सबसे अच्छा कैसे


13

मैं कुछ हद तक एक नया DBA हूं और मैं SQL सर्वर 2012 उदाहरण का प्रबंधन कर रहा हूं जिसमें उचित मात्रा में गतिविधि है। मैं पूर्ण पुनर्प्राप्ति मोड में चल रहा हूं क्योंकि हमें समय पुनर्प्राप्ति में बिंदु की आवश्यकता है।

अभी, मैं डेटाबेस का पूरा बैकअप ले रहा हूं और हर दिन सुबह 5 बजे लॉग करता हूं। लॉग फ़ाइलों में से कुछ को 300gb तक गुब्बारा दिया गया है और बैकअप लेने के बाद भी वे आकार में कम नहीं होते हैं। मैं उन्हें आकार में कम करने के लिए कुछ इसी तरह से चला सकते हैं:

BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);

BACKUP LOG db1 TO DISK = '\\server\share\db1_log2.trn';
DBCC ShrinkFile([db1_log], 0);

BACKUP LOG db1 TO DISK = '\\server\share\db1_log3.trn';
DBCC ShrinkFile([db1_log], 0);

जब मैं बैकअप फाइल के एलएसएन की जांच करता हूं तो मुझे कुछ ऐसा दिखाई देता है:

RESTORE headeronly FROM DISK = N'\\server\share\db1_log1.trn'
FirstLSN:  15781000014686200001
SecondLSN: 15802000000665000001

RESTORE headeronly FROM DISK = N'\\server\share\db1_log2.trn'
FirstLSN:  15802000000665000001
SecondLSN: 15805000000004100001

RESTORE headeronly FROM DISK = N'\\server\share\db1_log3.trn'
FirstLSN:  15805000000004100001
SecondLSN: 15808000000004200001

मुझे विश्वास नहीं हो रहा है कि मैं लॉग फाइल को सिकोड़कर अपनी लॉग चेन तोड़ रहा हूं। इस पर पढ़ते हुए, मुझे विश्वास है कि मैं अपने प्रदर्शन पर चोट कर रहा हूं क्योंकि उन सिकुड़ी हुई लॉग फ़ाइलों को फिर से विकसित करना है।

प्रशन:

  1. मेरे बैकअप के बाद लॉग फ़ाइल सिकुड़ती क्यों नहीं है? क्या ऐसा इसलिए है क्योंकि इसमें बिना लेनदेन के लेनदेन होता है?
  2. पहले मैं सोच रहा था कि मुझे हर 5:00 AM बैकअप के बाद लॉग फाइल को सिकोड़ना चाहिए। प्रदर्शन के लिए यह कितना बुरा है इस पर पढ़ने के बाद, अब मुझे विश्वास है कि मुझे दिन के दौरान हर दो घंटे में नियमित लॉग बैकअप लेने की आवश्यकता है। क्या वो सही है?
  3. डेटाबेस / लॉग का मेरा सामान्य पूर्ण बैकअप हर दिन सुबह 5:00 बजे होता है और कभी-कभी 3 घंटे लगते हैं। अगर मैं हर घंटे होने वाले लॉग बैकअप को शेड्यूल करता हूं, तो क्या होगा जब लॉग बैकअप 5:00 पूर्वाह्न बैकअप से टकराता है?

जवाबों:


10
  1. मेरे बैकअप के बाद लॉग फ़ाइल सिकुड़ती क्यों नहीं है? क्या ऐसा इसलिए है क्योंकि इसमें बिना लेनदेन के लेनदेन होता है?

वास्तविक NTFS लॉग फ़ाइल लेन-देन लॉग बैकअप से "सिकुड़ती" नहीं है, लेकिन लेन-देन लॉग के भीतर वीएलएफ (वर्चुअल लॉग फाइल) को पुन: उपयोग के लिए चिह्नित किया जाता है (क्योंकि वे अब बैकअप हैं और मीडिया पर बने हुए हैं) लेन-देन लॉग उपयोग होने के लिए। यदि आप लेन-देन लॉग का बैकअप नहीं ले रहे हैं, या अक्सर पर्याप्त नहीं है, तो उपलब्ध वीएलएफ नहीं होगा और इससे लेन-देन लॉग बढ़ने लगेगा (बशर्ते कि ऑटोग्रॉथ सेट है) अतिरिक्त लेनदेन लॉग प्रविष्टियों को समायोजित करने के लिए।

2. पहले मैं सोच रहा था कि मुझे हर 5:00 AM बैकअप के बाद लॉग फाइल को सिकोड़ना चाहिए। प्रदर्शन के लिए यह कितना बुरा है इस पर पढ़ने के बाद, अब मुझे विश्वास है कि मुझे दिन के दौरान हर दो घंटे में नियमित लॉग बैकअप लेने की आवश्यकता है। क्या वो सही है?

नियमित और निर्धारित फ़ाइल संकोचन एक अच्छा विचार नहीं है। केवल जब आपको बहुत आवश्यक स्थान को पुनः प्राप्त करने की आवश्यकता होती है, तो आपको एक पर विचार करना चाहिए DBCC SHINKFILE। इसके अलावा, जब आप अपने लेनदेन लॉग को लगातार बढ़ा रहे हैं, तो आप डेटाबेस की वसूली जैसी अन्य चीजों में बाधा बन सकते हैं। लेन-देन लॉग में बहुत सारे वीएलएफ के साथ (एक सामान्य समस्या जब लेन-देन लॉग केवल एक छोटे भंडारण वृद्धि द्वारा उगाया जाता है) डेटाबेस को पुनर्प्राप्त करने के लिए समय की मात्रा वांछित से अधिक हो सकती है।

3. डेटाबेस / लॉग का सामान्य पूर्ण बैकअप हर दिन सुबह 5:00 बजे होता है और कभी-कभी 3 घंटे लगते हैं। अगर मैं हर घंटे होने वाले लॉग बैकअप को शेड्यूल करता हूं, तो क्या होगा जब लॉग बैकअप 5:00 पूर्वाह्न बैकअप से टकराता है?

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

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

यहाँ लेने वाला यह है कि आपको अपने लेन-देन लॉग का अधिक बार बैकअप लेना चाहिए। NTFS फ़ाइल वृद्धि केवल एक ही समस्या नहीं है जिसे आप अपने लेन-देन लॉग को अधिक बार वापस नहीं कर सकते। यदि आपको संग्रहण विफलता हुई थी और आपका लेन-देन लॉग खो गया है, तो आप केवल अपने अंतिम लेन-देन लॉग बैकअप के समय बिंदु पर पुनर्स्थापित कर सकते हैं। यदि लेन-देन लॉग खो गया है, तो आप लॉग की पूंछ का बैकअप नहीं ले पाएंगे और विफलता के बिंदु-समय पर पुनर्स्थापित कर सकते हैं। आपके मामले में, आप संभावित रूप से 24 घंटे डेटा खो सकते हैं। लेकिन अगर आप अपने लेन-देन के लॉग का बैकअप लेते हैं, तो 30 मिनट कहते हैं, तो आपका अधिकतम डेटा नुकसान 30 मिनट होगा। उस स्थिति में, यदि आपका लेन-देन लॉग हो गया है, और आपके पास आपका पूर्ण बैकअप और आपकी अक्षत लॉग श्रृंखला है, तो आप उस अंतिम लॉग बैकअप को पुनर्स्थापित कर सकते हैं।

लेन-देन लॉग ट्रंकेशन पर TechNet प्रलेखन


5

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

लॉग बैकअप का उपयोग पूर्ण बैकअप के साथ संयोजन के रूप में किया जाना चाहिए और पूर्ण बैकअप के बीच एक नियमित अंतराल पर चलना चाहिए। यह अंतराल किसी भी अवधि हो सकता है, हालांकि मैं आमतौर पर हर 15 मिनट में लॉग बैकअप चलाता हूं। आपका अंतराल आपके रिकवरी पॉइंट ऑब्जेक्टिव (RPO) पर निर्भर है और रिकवरी की स्थिति में आप कितना डेटा खो सकते हैं।

यदि आप नियमित लॉग बैकअप ले रहे हैं, तो आपको नियमित फ़ाइल सिकोड़ने की आवश्यकता नहीं होनी चाहिए क्योंकि आप बढ़ने से पहले लॉग फ़ाइल स्थान का प्रबंधन करेंगे।


-1

मुझे पहले भी आपके जैसा ही मुद्दा मिला। मेरी लॉग फ़ाइल हमेशा बढ़ती है बजाय मैं हर रात पूर्ण डेटाबेस बैकअप का उपयोग करता हूं। तो यहाँ मेरा समाधान है:

  1. अपनी वर्तमान लॉग फ़ाइल का बैकअप लें।

  2. अपने डेटाबेस को सरल रिकवरी पर सेट करें

    • पूर्ण पुनर्प्राप्ति में बनें -> लॉग फ़ाइल प्रतिबद्ध लेनदेन को नष्ट नहीं करती है, यह केवल आपके डेटा को फिर से व्यवस्थित करता है -> शिंक फ़ाइल को बहुत प्रभावित नहीं करता है -> और सरल पुनर्प्राप्ति के लिए इसके विपरीत।
  3. अपनी लॉग फ़ाइल को 1 MB या उससे कम पर (यह आपके ऊपर है)

  4. अपने डेटाबेस को पूर्ण पुनर्प्राप्ति पर सेट करें।

आशा है कि यह मदद करेगा

फोंग ट्रान

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