मेरे पास एक डेटाबेस है जिसमें 350 एमबी डेटा फ़ाइल (.mdf) और 4.9 GB लॉग फ़ाइल (.ldf) है। पुनर्प्राप्ति मॉडल के लिए सेट किया गया है FULL।
जब मैं लॉग फ़ाइल को सिकोड़ने का प्रयास करता हूं, तो यह सिकुड़ नहीं रहा है।
मुझे पता है कि एक डेटाबेस को सिकोड़ना अच्छा नहीं है और यह नहीं किया जाना चाहिए। लेकिन फिर भी मैं इसे लॉग फ़ाइल को सिकोड़ने के लिए करने की कोशिश कर रहा हूं।
जब मैं भागा
DBCC SQLPerf(logspace)
मैंने पाया कि लॉग का आकार 4932 एमबी है और लॉग स्पेस का उपयोग 98.76% है !
फिर मैंने इस कमांड को आजमाया
USE <databasename>;
DBCC loginfo;
अब लगभग सभी वीएलएफ "स्थिति 2" हैं, जिसका अर्थ है कि सभी उपयोग में हैं।
मैंने लॉग बैकअप लेने की कोशिश की और फिर लॉग फ़ाइल को सिकोड़ें। सिकुड़ने से आकार कम नहीं हुआ।
मैंने पुनर्प्राप्ति मॉडल को बदल दिया SIMPLEऔर फिर से सिकुड़ने की कोशिश की, लेकिन इससे भी मदद नहीं मिली।
मैंने खुले लेनदेन के लिए जाँच की
DBCC opentran (database);
और पाया कि अब कोई लेन-देन नहीं खुला है।
लॉग फ़ाइल को सिकोड़ने से मुझे क्या रोक रहा है? इसे कैसे हल किया जा सकता है?
log_reuse_wait_descदे दियाACTIVE_TRANSACTION। जैसे ही लेन-देन पूरा हुआ सिकुड़न ठीक काम कर गई।