SQL सर्वर चेंज डेटा कैप्चर एक विशेषता है जो SQL सर्वर ट्रांजेक्शन लॉग से ऐतिहासिक डेटा को पढ़ता है और उन्हें एक विशेष तालिका में संग्रहीत करता है।
विशेष टेबल वैल्यू फ़ंक्शंस (TVF) के उपयोग के माध्यम से यह तब उपयोगकर्ता को इस डेटा को क्वेरी करने की अनुमति देता है, जिससे या तो किसी विशिष्ट टेबल पर सभी परिवर्तन प्राप्त करना संभव होता है या केवल विशिष्ट परिवर्तन होते हैं जो किसी विशिष्ट समय के भीतर हुए परिवर्तनों के परिणामस्वरूप होते हैं।
सीडीसी के कुछ फायदे हैं
- इसे केवल कुछ तालिकाओं या स्तंभों को ट्रैक करने के लिए कॉन्फ़िगर किया जा सकता है।
- यह कुछ हद तक मॉडल परिवर्तनों को संभालने में सक्षम है।
- यह प्रदर्शन को उतने अधिक प्रभावित नहीं करता जितना ट्रिगर का क्योंकि यह लेनदेन लॉग के साथ काम करता है।
- यह आसानी से सक्षम / अक्षम है और ट्रैक किए जाने वाले टेबल पर अतिरिक्त कॉलम की आवश्यकता नहीं है।
इसके कुछ नुकसान भी हैं:
- इतिहास डेटा की मात्रा बहुत तेज़ हो सकती है।
- आप उन परिवर्तनों को ट्रैक करने में सक्षम नहीं हैं जिन्होंने परिवर्तन किए हैं (कम से कम हटाने के लिए नहीं)।
- इतिहास डेटा को पकड़ने में कुछ समय लगता है, क्योंकि यह लेनदेन लॉग पर आधारित होता है।
- यह SQL Server Agent पर निर्भर करता है। यदि एजेंट नहीं चल रहा है या क्रैश हो रहा है, तो कोई भी इतिहास ट्रैक नहीं किया जा रहा है।
मैंने सीडीसी के बारे में काफी पढ़ा है और जब मैं जानता हूं कि इसका उपयोग कैसे करना है, तो मुझे अभी भी यकीन नहीं है कि यह मेरे लिए सही उपकरण है।
- CDC किन कार्यों / परिदृश्यों के लिए सही उपकरण है? (जैसे किसी निश्चित समय में डेटा ऑब्जेक्ट को पुनर्स्थापित करने के लिए उपयोगकर्ताओं को अनुमति देना? ऑडिट करना? डेटा का पूरा इतिहास दिखा रहा है?)
- जब आपको सीडीसी का उपयोग नहीं करना चाहिए, लेकिन कस्टम ट्रिगर-आधारित समाधान का सहारा लेना चाहिए?
- क्या ऑपरेशनल डेटाबेस में सीडीसी का उपयोग करना और ऑपरेशनल एप्लिकेशन के भीतर सीडीसी डेटा का उपयोग करना ठीक है? (जैसे इसे अंतिम उपयोगकर्ता को दिखा रहा है) या यह स्पष्ट रूप से इस सुविधा का दुरुपयोग है?
मैं आमतौर पर सुनता हूं कि सीडीसी एक ऑडिट टूल है, लेकिन यह नहीं है कि SQL सर्वर ऑडिट किस लिए है? क्या वे दोनों एक ही कार्य के लिए अलग-अलग उपकरण हैं? या सीडीसी अन्य चीजों के लिए इस्तेमाल किया जा सकता है?
मेरा वर्तमान परिदृश्य यह है कि मुझे एक विश्वसनीय डेटा फ्रेमवर्क बनाने के लिए कहा जाता है, जिसे भविष्य के कई अनुप्रयोगों के लिए आधार माना जाता है। सटीक आवश्यकताएं धुंधली हैं, लेकिन एक यह है कि यह डेटा इतिहास को ट्रैक करने और अन्य तालिकाओं से सभी संबंधित डेटा के साथ पुरानी प्रविष्टियों को पुनर्स्थापित करने में सक्षम होना चाहिए। मैं अभी एक विकल्प के रूप में सीडीसी का मूल्यांकन कर रहा हूं, लेकिन अगर यह जाने का रास्ता है, तो अनिश्चित हूं, क्योंकि मैं वास्तव में किसी भी अनुशंसित उपयोग के मामलों को नहीं ढूंढ सकता हूं।
जब मैं अपने विशिष्ट परिदृश्य के लिए सलाह की सराहना करता हूं, तो उत्तर को डेटा कैप्चर का उपयोग कब या कब नहीं करना चाहिए, इस बारे में सामान्य सलाह देनी चाहिए।