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