केंद्रीय डेटाबेस सर्वर के साथ डिस्कनेक्ट किए गए डिवाइस को सिंक्रनाइज़ करने में समस्या के कारण, हमें सर्वर पर SQL Server 2012 में अपग्रेड करने के बाद समस्या का सामना करना पड़ रहा है। ऐसा प्रतीत होता है कि CHANGE_TRACKING_MIN_VALID_VERSION मान से 1 उच्चतर रिटर्न दे रहा है (या कम से कम इसे अपग्रेड करने से पहले करना चाहिए था।)
मैं एक सरल उदाहरण स्थापित करने के तरीके के माध्यम से अरशद अली के महान चलने के माध्यम से काम कर रहा हूं ।
मैंने SQL Server 2008 और 2012 के परिवेश दोनों में कर्मचारी तालिका में एक पंक्ति डालने, हटाने और अद्यतन करने के लिए # 1 के माध्यम से # 5 स्क्रिप्ट्स चलाए हैं।
2008 में, निम्नलिखित कथन 0 देता है:
SELECT CHANGE_TRACKING_MIN_VALID_VERSION(OBJECT_ID('Employee'))
2012 में, यह 1 लौटाता है।
परीक्षणों में कुछ और लिपियों (6-8) के माध्यम से काम करने के लिए, मैंने एक साफ-सुथरी कार्रवाई के लिए बलपूर्वक प्रतिधारण अवधि को 1 मिनट के लिए निर्धारित किया। मैं दिन के लिए रवाना हुआ और जाहिर तौर पर यह रात भर चला।
2008 के उदाहरण में, CHANGE_TRACKING_CURRENT_VERSION और CHANGE_TRACKING_MIN_VALID_VERSION बराबर (11) हैं। 2012 के उदाहरण में, CHANGE_TRACKING_CURRENT_VERSION (11) की तुलना में CHANGE_TRACKING_MIN_VALID_VERSION एक (12) अधिक है। जब डेटाबेस किसी विस्तारित अवधि के लिए निष्क्रिय हो तो इससे सिंक्रोनाइज़ेशन प्रक्रिया पर प्रभाव पड़ सकता है। और हमने पाया है कि प्रक्रिया एक लूप में पकड़ी जा सकती है, खासकर जब निम्नलिखित परीक्षण के लिए यह निर्धारित किया जाता है कि क्या पुन: आरंभीकरण, जैसा कि सिंक्रनाइज़ेशन के विपरीत है, की आवश्यकता है:
IF CHANGE_TRACKING_MIN_VALID_VERSION(object_id(N'dbo.Employee')) > @sync_last_received_anchor
RAISERROR (N'SQL Server Change Tracking has cleaned up tracking information for table ''%s''...
क्या किसी और ने व्यवहार में इस बदलाव का अनुभव किया है? क्या किसी के पास स्पष्टीकरण है?