2013-02-19 13 views
6

हमारे स्रोत तालिका में दो नए कॉलम जोड़े गए थे जबकि सीडीसी अभी भी तालिका पर सक्षम था। मुझे सीडीसी टेबल में आने के लिए नए कॉलम चाहिए लेकिन यह नहीं पता कि ऐसा करने के लिए किस प्रक्रिया का पालन किया जाना चाहिए? मैंने मेज पर सीडीसी को पहले ही अक्षम कर दिया है, डीबी पर अक्षम सीडीसी, सीडीसी कैप्चरर्ड_columns तालिका में नए कॉलम जोड़े और सीडीसी सक्षम किया है। लेकिन अब मुझे सीडीसी टेबल में कोई डेटा नहीं मिल रहा है!सीडीसी तालिका स्रोत तालिका में नए कॉलम जोड़ने के बाद काम नहीं कर रही है

क्या कोई अन्य सीडीसी तालिका है जिसे स्रोत तालिका में कॉलम जोड़े जाने के बाद अपडेट किया जाना चाहिए? ये सिस्टम टेबल्स फ़ोल्डर के अंतर्गत सभी सीडीसी तालिकाओं हैं:

  • cdc.captured_columns < ----- जहाँ मैं नए कॉलम
  • cdc.change_tables
  • cdc.dbo_myTable_CT < जोड़ा ---- - मेज जहां परिवर्तन डेटा पर कब्जा कर लिया जा रहा था
  • cdc.ddl_history
  • cdc.index_columns
  • cdc.lsn_time_mapping
  • dbo.systranschemas

उत्तर

9

मैं Tracking Changes in Your Enterprise Database पढ़ने की सलाह देता हूं। बहुत विस्तृत और गहरा है। जानकारी के अन्य अत्यंत उपयोगी बिट्स के बीच, जैसे:

डेटा कैप्चर बदलने के दौरान डीडीएल परिवर्तन अप्रतिबंधित हैं। हालांकि, कॉलम जोड़े या ड्रॉप किए गए परिवर्तन डेटा पर उनका कुछ प्रभाव हो सकता है। यदि एक ट्रैक किए गए कॉलम को गिरा दिया जाता है, तो कैप्चर इंस्टेंस में सभी और प्रविष्टियों में उस कॉलम के लिए NULL होगा। यदि कोई कॉलम जोड़ा गया है, तो इसे उदाहरण कैप्चर करके अनदेखा कर दिया जाएगा। दूसरे शब्दों में, कैप्चर इंस्टेंस का आकार सेट होने पर सेट किया गया है।

यदि कॉलम परिवर्तन आवश्यक हैं, तो तालिका के लिए एक और कैप्चर उदाहरण (प्रति तालिका अधिकतम दो कैप्चर इंस्टेंस) बनाने के लिए संभव है और परिवर्तन डेटा के उपभोक्ताओं को नई तालिका स्कीमा पर माइग्रेट करने की अनुमति दें।

यह एक बहुत ही समझदार और अच्छी तरह से विचार किया गया डिज़ाइन है जो स्कीमा बहाव को मानता है (सभी प्रतिभागियों को वास्तविक ऑनलाइन तैनाती में एक साथ स्कीमा अपडेट नहीं किया जा सकता है)। बहु-चरणबद्ध दृष्टिकोण (डीडीएल को तैनात करना, नई सीडीसी कैप्चर करना, ग्राहकों को अपग्रेड करना, पुराने सीडीसी कैप्चर ड्रॉप करना) एकमात्र व्यवहार्य दृष्टिकोण है और आपको सूट का पालन करना चाहिए।

+0

मैंने इसे पढ़ा लेकिन एक ही सीडीसी तालिका रखने की उम्मीद कर रहा था। क्या यह "मानक" प्रक्रिया का पालन किया जाता है? और पुराने सीडीसी टेबल को छोड़ने पर कैप्चर पर कोई प्रतिकूल प्रभाव नहीं पड़ेगा? – knightscharge

+0

मुझे लगता है कि मेरा जवाब पहले से ही आपके प्रश्न को शामिल करता है। –

+0

शायद यह अपडेट किया गया है, या भ्रामक है, लेकिन [मुझे कुछ दस्तावेज मिला है] (https://msdn.microsoft.com/en-us/library/hh710064.aspx) जो बताता है कि नए कॉलम के मान ट्रैक किए जाएंगे, लेकिन नहीं अतिरिक्त - _ "यदि परिवर्तन ट्रैक किए गए तालिका में कोई नया कॉलम जोड़ा जाता है, तो कॉलम के अतिरिक्त को ट्रैक नहीं किया जाता है। केवल नए कॉलम में किए गए अपडेट और बदलाव ट्रैक किए जाते हैं।" _ मैं इसे आज़माने जा रहा हूं ... –

संबंधित मुद्दे