क्या उपलब्धता समूह निर्बाध असफलता प्रदान कर सकते हैं (कोई क्वेरी विफलताओं के साथ)?


9

मैं SQL Server 2012 में उपलब्धता समूह सुविधा का परीक्षण कर रहा हूं और यह पा रहा हूं कि प्राथमिक सर्वर के द्वितीयक सर्वर पर विफल होने पर लगभग 15 सेकंड का डाउन समय है। इस समय के दौरान निष्पादित सभी SQL क्वेरी फ़ेलओवर संक्रमण पूर्ण होने तक विफल हो रहे हैं।

क्या इसे 0 सेकंड तक ले जाने और फेलओवर संक्रमण के दौरान प्रश्नों को विफल होने से रोकने का कोई तरीका है?

दूसरे शब्दों में, क्या विफलता के बजाय प्राथमिक सर्वर पर पुनर्निर्देशित होने की विफलता के दौरान चल रहे किसी भी प्रश्न को प्राप्त करने का एक तरीका है ... और क्या असफल होने के बजाय द्वितीयक सर्वर से तुरंत कनेक्ट करने के लिए नए db कनेक्शन प्राप्त करने का कोई तरीका है विफलता संक्रमण के दौरान कनेक्ट?

वर्तमान में मेरे पास उपलब्धता समूह में 2 सर्वर स्थापित हैं।


1
इस प्रश्न (और उत्तर) की जांच करें: dba.stackexchange.com/questions/25124/…
मैक्स वेरनॉन

केवल ओरेकल आरएसी ही ऐसा कर सकता है।
रिचर्ड ब्राउन

या आपको HAproxy की तरह sql सर्वर के सामने उचित सेटिंग्स में linux loadballancer का उपयोग करना चाहिए।
काकज़

जवाबों:


9

नहीं, ऑवरऑन (या एसक्यूएल सर्वर में सामान्य रूप से, जहां तक ​​मैं जानता हूं) के साथ शून्य डाउनटाइम फेलओवर करने का कोई तरीका नहीं है। ऐसा करने के लिए, जिस SQL ​​सर्वर से आप जुड़े हैं, उसे दूसरे नोड मध्य-क्वेरी में राज्य स्थानांतरण करना होगा, और चूंकि कई विफलताएं अप्रत्याशित हैं, इसलिए यह संभव नहीं है।

हालाँकि, आप आल्टरऑन में "रीड-ओनली सेकेंडरीज़" को सक्षम कर सकते हैं, और तब आपके पाठकों को शून्य-डाउनटाइम होगा जब प्राथमिक सर्वर विफल हो जाता है - चूंकि वे एक माध्यमिक प्रतिलिपि से कनेक्ट कर रहे हैं अपने चयनित प्रश्नों को करने के लिए, वे नहीं कर सकते यहां तक ​​कि विफलता का नोटिस। "राइट" कनेक्शन खुले उपयोगकर्ताओं के लिए अभी भी एक रुकावट होगी, लेकिन आपके उपयोगकर्ता आधार का कम से कम कुछ हिस्सा निर्बाध होगा।


"रीड-ओनली सेकेंडरीज़" सक्षम होने के साथ, क्या कोई रीड रिक्वेस्ट प्राइमरी पर होती है या वे हमेशा सेकंडरीज़ पर की जाती हैं? और अगर सेकेंडरी सर्वर की उस स्थिति में गलती हो, तो क्या होगा?
जॉन

यदि आप क्लाइंट को द्वितीयक से कनेक्ट करने के लिए कॉन्फ़िगर करते हैं, तो एक द्वितीयक के खिलाफ पढ़ना केवल तब होता है।
मैक्स वर्नोन

1
मैं देख रहा हूँ, ताकि एक स्मार्ट क्लाइंट ऐप की आवश्यकता हो।
जॉन

@ जॉनहुग्स: इस Microsoft दस्तावेज़ (पृष्ठ 5 के मध्य) की जाँच करें: tinyurl.com/9dtvndv और यह ब्लॉग पोस्ट: tinyurl.com/8cyr9za । आपको आवश्यक रूप से एक स्मार्ट ऐप की आवश्यकता नहीं है - जब आप इस सुविधा को सक्षम करते हैं, तो आप यह निर्दिष्ट कर सकते हैं कि कोई भी एप्लिकेशन पठनीय द्वितीयक से कनेक्ट हो सकता है, लेकिन DDL / DML लेनदेन करने का कोई भी प्रयास विफल हो जाएगा। यदि आप नए मूल ग्राहक का उपयोग कर रहे हैं, तो आप "ReadIntent" को निर्दिष्ट कर सकते हैं, जिसका अर्थ है कि नया ग्राहक आपके द्वितीयक से पढ़ेगा, जबकि पुराने ग्राहक आपके प्राथमिक के खिलाफ सभी लेनदेन करना जारी रखेंगे। एक विकल्प लेकिन कुछ पढ़ने की जरूरत है।
SqlRyan

SqlRyan सही है, क्लाइंट को डिस्कनेक्ट किए बिना ऑल्वोइन उपलब्धता समूहों का उपयोग करते हुए SQL सर्वर आवृत्ति को विफल करने का कोई तरीका नहीं है।
मर्डनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.