मेरे पास एक लंबी चलने वाली प्रक्रिया है जो पूर्ण अवधि के लिए एक लेनदेन खोलती है।
इसे निष्पादित करने के तरीके पर मेरा कोई नियंत्रण नहीं है।
क्योंकि लेन-देन पूर्ण अवधि के लिए खुला रखा जाता है, जब लेन-देन लॉग भरता है, तो SQL सर्वर लॉग फ़ाइल का आकार नहीं बढ़ा सकता है।
तो त्रुटि के साथ प्रक्रिया विफल हो जाती है "The transaction log for database 'xxx' is full"
।
मैंने डेटाबेस गुणों में लेन-देन लॉग फ़ाइल का आकार बढ़ाकर इसे रोकने का प्रयास किया है, लेकिन मुझे वही त्रुटि मिलती है।
निश्चित नहीं कि मुझे आगे क्या प्रयास करना चाहिए। प्रक्रिया कई घंटों तक चलती है इसलिए परीक्षण और त्रुटि खेलना आसान नहीं है।
कोई विचार?
अगर किसी को दिलचस्पी है, तो प्रक्रिया एक संगठन आयात है Microsoft Dynamics CRM 4.0.
डिस्क स्थान बहुत है, हमारे पास लॉग इन सिंपल लॉगिंग मोड है और प्रक्रिया को किक करने से पहले लॉग का बैकअप लिया है।
- = - = - = - = - अद्यतन - = - = - = - = -
अब तक की टिप्पणियों के लिए सभी का धन्यवाद। निम्नलिखित है जो मुझे विश्वास दिलाता है कि खुले लेनदेन के कारण लॉग नहीं बढ़ेगा:
मुझे निम्नलिखित त्रुटि प्राप्त हो रही है...
Import Organization (Name=xxx, Id=560d04e7-98ed-e211-9759-0050569d6d39) failed with Exception:
System.Data.SqlClient.SqlException: The transaction log for database 'xxx' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
तो उस सलाह का पालन करते हुए मैं " log_reuse_wait_desc column in sys.databases
" गया और इसने " ACTIVE_TRANSACTION
" मान रखा ।
Microsoft के अनुसार: http://msdn.microsoft.com/en-us/library/ms345414(v=sql.105).aspx
इसका मतलब है कि निम्नलिखित:
एक लेनदेन सक्रिय है (सभी पुनर्प्राप्ति मॉडल)। • लॉग बैकअप की शुरुआत में लंबे समय तक चलने वाला लेनदेन मौजूद हो सकता है। इस स्थिति में, स्थान खाली करने के लिए एक और लॉग बैकअप की आवश्यकता हो सकती है। अधिक जानकारी के लिए, "लॉन्ग-रनिंग एक्टिव ट्रांजैक्शंस" बाद में इस विषय में देखें।
• एक लेन-देन स्थगित है (SQL Server 2005 एंटरप्राइज़ संस्करण और बाद के संस्करण केवल)। आस्थगित लेनदेन प्रभावी रूप से एक सक्रिय लेनदेन है जिसका रोलबैक कुछ अनुपलब्ध संसाधन के कारण अवरुद्ध है। आस्थगित लेनदेन के कारणों के बारे में जानकारी के लिए और उन्हें स्थगित राज्य से बाहर कैसे स्थानांतरित किया जाए, आस्थगित लेनदेन देखें।
क्या मैंने कुछ गलत समझा है?
- = - = - = - अद्यतन 2 - = - = - = -
बस प्रारंभिक लॉग फ़ाइल आकार को 30GB करने के लिए सेट के साथ प्रक्रिया को किक किया। इसे पूरा करने में कुछ घंटे लगेंगे।
- = - = - = - अंतिम अद्यतन - = - = - = -
समस्या वास्तव में लॉग फ़ाइल के कारण सभी उपलब्ध डिस्क स्थान की खपत के कारण थी। आखिरी प्रयास में मैंने 120GB तक फ्रीज कर लिया और इसने अभी भी इसका इस्तेमाल किया और आखिरकार असफल रहा।
मुझे यह महसूस नहीं हुआ कि यह पहले हो रहा था क्योंकि जब प्रक्रिया रात भर चल रही थी, तो यह विफलता पर वापस चल रही थी। इस बार मैं रोलबैक से पहले लॉग फ़ाइल का आकार जांचने में सक्षम था।
आपके निवेश - सहयोग के लिए धन्यवाद।