समस्या: मैं एक AlwaysOn उपलब्धता समूह (एजी) में सभी सर्वरों पर वितरित लेनदेन समन्वयक (डीटीसी) कैसे चला सकता हूं? मुझे फेलओवर / स्विचओवर घटनाओं पर लेनदेन को बनाए रखने की आवश्यकता नहीं है।
सेटअप: मेरे पास तीन Windows 2008 R2 सर्वरों के साथ एक विंडोज़ फ़ेलओवर क्लस्टर (WSFC) है जहाँ वे सभी SQL 2012 चला रहे हैं। दो सर्वर एक डेटा केंद्र में हैं और एक AlwaysOn विफलता क्लस्टर (FCI) का हिस्सा हैं, जबकि तीसरा सर्वर है एक दूसरा डेटा सेंटर। WSFC एक बहु-सबनेट क्लस्टर है। यहाँ सेटअप का एक स्केच है:
मैं डीटीसी को दो एफसीआई नोड्स के बीच काम करने के लिए स्थापित और कॉन्फ़िगर करने में सक्षम हूं क्योंकि वे एक ही सबनेट और शेयर स्टोरेज पर हैं। मैंने कुछ एजी को कॉन्फ़िगर किया है और वे ठीक काम कर रहे हैं। यह स्क्रीनशॉट FCI पर स्थापित DTC दिखाता है:
यह स्क्रीनशॉट दिखाता है कि मैं FCI नोड्स में से एक पर DTC कॉन्फ़िगर कर सकता हूं (जो भी सक्रिय है):
मैं इस क्लस्टर पर DTC का उपयोग करने वाले और AG का उपयोग करने वाले एप्लिकेशन को माइग्रेट करना चाहता हूं। मैंने पढ़ा है कि AGC ( संदर्भ ) के साथ DTC समर्थित नहीं है । मुझे दूसरे डेटा सेंटर में तीसरे नोड पर डीटीसी को कॉन्फ़िगर करने का तरीका नहीं मिल पाया है। जब मैं DTC को तीसरे नोड पर कॉन्फ़िगर करने का प्रयास करता हूं, तो यह अनुपलब्ध प्रतीत होता है, जैसा कि इस स्क्रीनशॉट में दिखाया गया है:
उपलब्धता समूहों के लिए ब्रेंट ओजर की फ्री सेटअप चेकलिस्ट पीडीएफ में वह सूचीबद्ध है:
क्लस्टर स्थापना ...
29. यदि कोई एफसीआई शामिल है, तो अपने प्लानिंग अनुभाग के निर्णयों के अनुसार डीटीसी को कॉन्फ़िगर करें।
SQL सर्वर 2012 पर हमेशा उपलब्धियां समूह रॉक ब्रेंट पर टिप्पणी में कहा गया है कि "... जब ए जी प्ले में होते हैं तो कुछ भी नहीं बदलता है। बस ध्यान रखें कि उपलब्धता समूह में डेटाबेस किसी अन्य प्रतिकृति पर एक साथ विफल होने पर ट्रांसेक्शनल संगतता का समर्थन नहीं करते हैं। .. "
इससे यह प्रतीत होता है कि DTC का उपयोग उपलब्धता समूहों में तब तक किया जा सकता है जब तक आप समझते हैं कि एजी स्विचओवर में लेनदेन को बनाए नहीं रखा जाएगा। मुझे एफसीआई नोड्स से लेनदेन को बनाए रखने के लिए इसकी आवश्यकता नहीं होगी। मुझे बस आपदा के दौरान आपदा (जहां मैंने अपना प्राथमिक डेटा केंद्र खो दिया है) के उपयोग के लिए आवेदन के लिए डीटीसी उपलब्ध होना चाहिए।
मैं अपने तीसरे नोड पर DTC को कैसे कॉन्फ़िगर करूं? या, क्या यह मामला है कि मैं सिर्फ किस्मत से बाहर हूं जब यह एजी और एक एप्लिकेशन का उपयोग करने की बात आती है, जिसे डीटीसी की आवश्यकता है?
अद्यतन: मेरे द्वारा सुलझाया गया समाधान लॉग शिपिंग का उपयोग करना है। हालांकि, एक असफलता के मामले में, मुझे अभी भी डीटीसी को नोड 3 पर उपलब्ध होने की आवश्यकता है। मुझे पता चला है कि यह DTC के क्लस्टर किए गए MSDTC-MSSQLSERVERCLU उदाहरण की स्थापना रद्द करके उपलब्ध है जो Node1 और Node2 के बीच साझा किया गया है। एक बार हटाए जाने के बाद, मैं Node3 पर एक लोकल डीटीसी इंस्टेंस को सेटअप और कॉन्फ़िगर कर सकता हूं। बाद में, मैं संकुल MSDTC-MSSQLSERVERCLU उदाहरण को पुनर्स्थापित कर सकता हूं। उस क्रम में इंस्टाल अनुक्रम को करने से काम करने लगता है। मैं उस तरह से थोड़ी देर के लिए दौड़ रहा हूं और मुझे कोई बुरा प्रभाव नहीं मिला है। ऐसा लगता है कि यह एक AlwaysOn उपलब्धता समूह चलाने के लिए भी काम करेगा। मैं समझता हूं कि वितरित लेनदेन को एजी फेलओवर में संरक्षित नहीं किया जाएगा, मुझे फेलओवर के बाद काम करने के लिए बस नए की आवश्यकता होगी। लेकिन मैं 'हेवन'