'XTP_CHECKPOINT' के कारण डेटाबेस 'डेटाबेस_नाम' के लिए लेनदेन लॉग भरा हुआ है


26

मेरा एक सवाल है XTP_CHECKPOINT

मैं SQL Server 2014 का उपयोग कर रहा हूं। मेरे पास एक डेटाबेस है जो SIMPLE रिकवरी मॉडल मोड में है। इसकी प्रतिकृति भी बनाई जा रही है।

खुले लेनदेन नहीं हैं। मैंने भाग लिया है DBCC OPENTRANऔर यह लौटा है:

"कोई सक्रिय खुला लेनदेन नहीं।"

जब भी मैं कोई तालिका बनाने या डेटा को हटाने या हटाने का प्रयास करता हूं, तो मुझे यह संदेश मिलता रहता है:
(मैंने अपने वास्तविक डेटाबेस का नाम शब्द के साथ बदल दिया है database_name)

"XTP_CHECKPOINT 'के कारण डेटाबेस' डेटाबेस_नाम 'के लिए लेनदेन लॉग भरा हुआ है"

क्या किसी को पता है कि ऐसा क्यों हो रहा है, और इससे भी महत्वपूर्ण बात यह है कि मैं इसे कैसे रोक सकता हूं?

और हां, डेटाबेस वास्तव में SIMPLE रिकवरी मॉडल मोड में है। यानी लेन-देन लॉग को स्वचालित रूप से छोटा होना चाहिए।

संयोग से, एक और डेटाबेस जो मेरे पास पूर्ण पुनर्प्राप्ति मोड में है, वही काम किया, उसी त्रुटि को वापस करना शुरू कर दिया:

'XTP_CHECKPOINT' के कारण डेटाबेस 'डेटाबेस_नाम' के लिए लेनदेन लॉग भरा हुआ है

मैंने लॉग ग्रोथ सेटिंग्स को असीमित वृद्धि में बदलने की कोशिश की, लेकिन यह मुझे नहीं होने देगा, उसी त्रुटि को वापस लौटाएगा।

मैं किसी भी XTP सामान के बिना समस्या को पुन: उत्पन्न कर सकता हूं, सिवाय फ़ाइलग्रुप के। यहां देखें कैसे: http://pastebin.com/jWSiEU9U

जवाबों:


8

मुझे एक समान समस्या थी: मेरे पास प्रतिकृति नहीं थी, लेकिन एक बार जब मैंने मेमोरी ऑप्टिमाइज्ड टेबल को टेस्ट, डेटाबेस में साधारण रिकवरी मोड के रूप में उपयोग किया था, लेकिन मेरे लेन-देन लॉग नहीं काटे गए थे। पूर्ण बैकअप के बाद भी मैनुअल ट्रंकेशन, त्रुटि देता है:

लॉग फ़ाइल X को छोटा नहीं कर सकता क्योंकि फ़ाइल के अंत में स्थित तार्किक लॉग फ़ाइल उपयोग में है।

मैन्युअल चेकपॉइंट विफल:

Msg 41315, स्तर 16, राज्य 4, लाइन N चेकपॉइंट कार्रवाई डेटाबेस X में विफल।

SQL सेवा को पुनरारंभ करने के बाद मैन्युअल चेकपॉइंट केवल सही तरीके से सफल हुआ, जिससे मेरे मल्टी टास्क डेटाबेस आकार के कारण 4 घंटे रिकवरी स्थिति में हो जाएगा। मैंने ऑटोग्रॉथ को एक विशिष्ट आकार में सेट करने का भी प्रयास किया, लेकिन यह सभी एक ही कर समाप्त हो गया: लेन-देन लॉग भरें जब तक कि कोई स्थान नहीं बचा था।

अंत में, दिन और रात की कोशिश और शोध के बाद, मैंने SQL Server 2014 SP1 के लिए संचयी अद्यतन 3 को स्थापित करके अपनी समस्या का समाधान पाया


9

पहले सुनिश्चित करें कि प्रतिकृति यह पैदा नहीं कर रहा है, जैसा कि कनेक्ट आइटम में कहा गया है "log_wait_reuse_desc = XTP_CHECKPOINT का मतलब यह नहीं है कि XTP चेकपॉइंट कार्यकर्ता लॉग ट्रंकेशन पकड़ रहा है।" इसलिए दौड़ना शुरू करें sp_repltransऔर सुनिश्चित करें कि सभी डेटा वितरित किया गया है।

तो यहाँ यह थोड़ा स्निपेट है:

"यह एक डेटाबेस पर होता है, जिसमें मेमोरी ऑप्टिमाइज़्ड फ़ाइल समूह होता है, कोई बात नहीं कि मेमोरी ऑप्टिमाइज़ टेबल है या नहीं।

वर्तमान वर्कअराउंड सेट निश्चित होने के लिए AutoGrown है। या, रिकवरी मोड को सरल बनाने के लिए, और लॉग को सिकोड़ना। "

तो अगर प्रतिकृति की सफाई काम नहीं करती है तो निम्नलिखित प्रयास करें:

checkpoint;
dbcc shrinkfile (Logfile, truncateonly)
alter database [database] modify file (filename = 'TRANSACTIONLOG', FILEGROWTH = 5MB)

यह नहीं बताया गया है कि यह लॉग फ़ाइल या डेटाबेस फ़ाइलों के लिए है, लेकिन लॉग फ़ाइलों को आज़माकर शुरू करें और यदि तयशुदा वृद्धि के लिए डेटाबेस फ़ाइलों को सेट करने का प्रयास नहीं करते हैं:


3

मैं किसी अन्य लॉग फ़ाइल को जोड़कर समस्या को हल करने में सक्षम था, जिसने तब मुझे पूर्ण बैकअप चलाने की अनुमति दी, XTP_CHECKPOINT समस्या को हल करने के लिए जोड़े गए अतिरिक्त लॉग फ़ाइल को निकालने के साथ प्राथमिक लॉग फ़ाइल आकार और छायांकित विकास को समायोजित किया।


1

मैंने इसे एक ग्राहक के साथ अनुभव किया है। लॉग और इन-मेमोरी FILESTREAM डेटा फाइलें एक ही ड्राइव पर थीं। उन्होंने एक नई लॉग फ़ाइल बनाई (कुछ ने यह सुझाव दिया है) लेकिन सिस्टम चेक नहीं कर सकता क्योंकि यह इन-मेमोरी चेकपॉइंट फ़ाइलों (* .HKCKP) को बनाने में विफल रहता है।

इन-मेमोरी FILESTREAM डेटा के साथ ड्राइव पर स्थान खाली करने का प्रयास करें।

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