जिस तरह से मैं हमेशा उच्च उपलब्धता समाधान की कल्पना करना चाहता हूं वह निम्नलिखित है:
SQL सर्वर विफलता क्लस्टर इंस्टेंस (FCI)
अत्यधिक उपलब्ध क्या है? संपूर्ण उदाहरण। जिसमें सभी सर्वर-ऑब्जेक्ट (लॉगिन, SQL सर्वर एजेंट कार्य, आदि) शामिल हैं। इसमें डेटाबेस और उनकी इकाइयाँ भी शामिल हैं। यह अत्यधिक उपलब्ध SQL सर्वर उदाहरणों के लिए एक बढ़िया समाधान है, क्योंकि यह इस दिए गए समाधान के साथ नियंत्रण का स्तर होने वाला है।
रिपोर्टिंग के बारे में क्या? कोई नहीं, कोई नहीं, कोई नहीं। एक विफलता क्लस्टर उदाहरण में एक सक्रिय नोड होता है जो क्लस्टर समूह को उदाहरण के रूप में वितरित करता है, VNN, आदि और अन्य सभी नोड निष्क्रिय हैं, निष्क्रिय बैठे हैं (जहां तक वर्तमान क्लस्टर समूह का संबंध है) और एक विफलता का इंतजार कर रहे हैं।
फेलओवर होने पर क्या होता है? एक FCI के लिए डाउनटाइम उस समय की मात्रा से निर्धारित होने वाला है जो निष्क्रिय नोड क्लस्टर संसाधन को हथियाने और SQL सर्वर इंस्टेंस को चालू स्थिति में लाने के लिए लेता है। यह आमतौर पर समय में न्यूनतम है।
किसी भी ग्राहक अमूर्त? हां, यह फेलओवर क्लस्टर उदाहरण के लिए वर्चुअल नेटवर्क नाम के साथ सहज रूप से बनाया जा रहा है। यह हमेशा सक्रिय नोड को इंगित करेगा जो वर्तमान में SQL सर्वर क्लस्टर संसाधन को वितरित कर रहा है।
हमेशा उपलब्धता समूह
अत्यधिक उपलब्ध क्या है? एक उपलब्धता समूह यहां उच्च उपलब्धता का तार्किक समावेश होने जा रहा है, जबकि एक उपलब्धता समूह में कई डेटाबेस और एक वर्चुअल नेटवर्क नाम (श्रोता, एक वैकल्पिक क्लस्टर संसाधन) शामिल हैं। यह ध्यान देने योग्य है कि सर्वर ऑब्जेक्ट जैसे कि लॉगिन और एसक्यूएल सर्वर एजेंट नौकरियां एचए समाधान का हिस्सा नहीं होंगे, और यह सुनिश्चित करने के लिए विशेष ध्यान रखने की आवश्यकता है कि ये उपलब्धता समूह के साथ ठीक से लागू हो। जरूरत से ज्यादा बोझ नहीं, बल्कि देखभाल करने की जरूरत है।
रिपोर्टिंग के बारे में क्या? यह रिपोर्टिंग के लिए एक बढ़िया समाधान है, हालांकि मैं अपनी रिपोर्टिंग उदाहरण के रूप में एक तुल्यकालिक प्रतिकृति का उपयोग नहीं करूंगा। दो प्रतिबद्ध संबंध हैं, तुल्यकालिक और अतुल्यकालिक। मेरी राय में और जो मैंने अभ्यास में देखा है, वह यह है कि आपकी समकालिक माध्यमिक प्रतिकृति किसी आपदा की प्रतीक्षा कर रही है। इसे उस प्रतिकृति के रूप में समझें जो किसी समस्या की स्थिति में डेटा-लॉस-फेलओवर लेने के लिए तैयार है। फिर अतुल्यकालिक प्रतिकृतियां होती हैं जो उस रिपोर्टिंग कार्यभार को संभाल सकती हैं। आप इस प्रतिकृति का उपयोग उपरोक्त समाधान के रूप में नहीं कर रहे हैं, लेकिन रिपोर्टिंग जैसी चीजों के लिए मोरसो। रिपोर्टिंग कार्यभार को इस प्रतिकृति की ओर इंगित किया जा सकता है (या तो प्रत्यक्ष या परोक्ष रूप से श्रोता के माध्यम से केवल-पठन मार्ग के माध्यम से)।
फेलओवर होने पर क्या होता है? स्वचालित फ़ेलओवर के साथ जोड़ा गया है, जो एक तुल्यकालिक प्रतिबद्ध माध्यमिक प्रतिकृति के लिए, यह प्रतिकृति भूमिका स्थिति परिवर्तन SECONDARY_NORMAL से PRIMARY_NORMAL तक होगी। स्वचालित फ़ेलओवर होने के लिए, आपको एक समकालिक माध्यमिक प्रतिकृति की आवश्यकता होती है जो वर्तमान में सिंक्रनाइज़ है, और जो कार्यान्वित किया गया है वह यह निर्धारित करने के लिए लचीली विफलता नीति है कि वास्तव में यह विफलता कब होनी चाहिए। वह नीति वास्तव में विन्यास योग्य है।
किसी भी ग्राहक अमूर्त? हां, आप वैकल्पिक रूप से एक AlwaysOn उपलब्धता समूह श्रोता को कॉन्फ़िगर कर सकते हैं। यह मूल रूप से सिर्फ एक आभासी नेटवर्क नाम है (इसे एजी के समूह समूह में क्लस्टर संसाधन के रूप में डब्ल्यूएसएफसी के माध्यम से देखा जा सकता है) जो वर्तमान प्राथमिक प्रतिकृति की ओर इशारा करता है। यह आपके रिपोर्टिंग वर्कलोड को इधर-उधर करने के साथ-साथ किसी भी सर्वर पर रीड-ओनली राउटिंग लिस्ट सेट करने का एक महत्वपूर्ण हिस्सा है, जिसे आप ReadOnly ट्रैफिक को रीडायरेक्ट करना चाहते हैं (यह कनेक्शन स्ट्रिंग के माध्यम से सेट किया गया है। SQL के लिए .NET फ्रेमवर्क प्रोवाइडर के साथ सर्वर, यह एप्लिकेशन इंटेंट पैरामीटर होगा, जिसे ReadOnly पर सेट किया गया है )। आपको प्रत्येक प्रतिकृति के लिए केवल-पढ़ने के लिए एक रूटिंग URL सेट करना होगा, जिसे आप द्वितीयक प्रतिकृति भूमिका में रहते हुए इस रिपोर्टिंग कार्यभार को प्राप्त करना चाहते हैं।
लेन-देन प्रतिकृति
अत्यधिक उपलब्ध क्या है? यह तर्कपूर्ण है, लेकिन मैं कुछ नहीं कहने जा रहा हूं । मैं प्रतिकृति को उच्च उपलब्धता समाधान के रूप में नहीं देखता। हां, डेटा संशोधनों को ग्राहकों को धकेला जा रहा है लेकिन हम प्रकाशन / लेख स्तर पर बात कर रहे हैं। यह डेटा का एक सबसेट होने वाला है (सभी डेटा को शामिल कर सकता है, लेकिन इसे लागू नहीं किया जाएगा। यानी आप प्रकाशक डेटाबेस में एक नई तालिका बनाते हैं, और यह स्वचालित रूप से ग्राहकों को धकेल नहीं दिया जाएगा)। जहां तक हा जाता है, यह नीचे का बैरल है और मैं इसे रॉक-सॉलिड हा समाधान के साथ समूह में नहीं रखूंगा।
रिपोर्टिंग के बारे में क्या? डेटा के सबसेट पर रिपोर्टिंग के लिए एक महान समाधान, इसके बारे में कोई सवाल नहीं। यदि आपके पास एक 1 टीबी डेटाबेस है जो अत्यधिक लेनदेन योग्य है और आप उस कार्यभार को ओएलटीपी डेटाबेस से दूर रखना चाहते हैं, तो रिपोर्टिंग कार्यभार के लिए ग्राहक (या ग्राहकों) को डेटा के सबसेट को धकेलने के लिए ट्रांसेक्शनल प्रतिकृति एक शानदार तरीका है। अगर आपके रिपोर्टिंग कार्यभार के 1 टीबी डेटा में से केवल 50 जीबी ही हो तो क्या होगा? यह एक स्मार्ट समाधान है, और आपकी व्यावसायिक आवश्यकताओं को पूरा करने के लिए अपेक्षाकृत विन्यास योग्य है।
सारांश
क्या यह उबलता है सवालों के एक मुट्ठी भर है कि (आंशिक रूप से व्यापार द्वारा) का जवाब दिया जाना चाहिए:
- क्या अत्यधिक उपलब्ध होने की आवश्यकता है ?
- SLA हा / DR के लिए क्या निर्देश देता है?
- किस तरह की रिपोर्टिंग हो रही है और क्या विलंब स्वीकार्य हैं?
- भौगोलिक रूप से छितरी हुई HA के साथ हमें क्या संभालने की आवश्यकता है ? (भंडारण प्रतिकृति महंगी है, लेकिन एक FCI के साथ होना चाहिए। एजी को स्टैंडअलोन इंस्टेंस से साझा भंडारण की आवश्यकता नहीं है, और आप कोरम के लिए फ़ाइल साझा गवाह का उपयोग कर सकते हैं जो संभावित रूप से साझा भंडारण की आवश्यकता को समाप्त कर सकते हैं)