हमारे पास प्राइमरी और रीड-इनेबल्ड सेकंडरी के साथ ऑलवेज ऑन उपलब्धता ग्रुप है। हमारे पास कार्यान्वयन टीम के लिए एक उपयोगकर्ता है जो डेटाबेस का उपयोग उस डेटा की शुद्धता की जांच करने के लिए करता है जिसे वे डेटाबेस में रखना चाहते हैं।
उपयोगकर्ताओं को केवल डेटाबेस से पढ़ने के अधिकार हैं, लेकिन जब वे एजी लिसनर के माध्यम से (एसएसएमएस के माध्यम से) कनेक्ट होते हैं तो वे हमेशा सक्रिय नोड से जुड़ते हैं।
मैंने उन्हें सीधे केवल उदाहरण तक पढ़ने के लिए पहुंचाने की कोशिश की है, लेकिन वे अपने तरीके से फंस गए हैं और एक या दो दिन बाद वे फिर से सक्रिय नोड पर वापस आ गए हैं।
क्या SQL सर्वर के लिए यह कहने का कोई तरीका है कि यह उपयोगकर्ता हमेशा इरादे से जा रहा है और उन्हें वहां पुनर्निर्देशित कर रहा है?
नोट: मैंने अतिरिक्त कनेक्शन मापदंडों में 'ApplicationIntent = ReadOnly' की स्थापना की कोशिश की है, लेकिन यह द्वितीयक नोड पर पुनर्निर्देशित नहीं होता है, और आदर्श समाधान नहीं है क्योंकि वे अनिवार्य रूप से इसे नए शुरुआत के लिए सेट करना भूल जाएंगे।
एसक्यूएल सर्वर 2012 एंटरप्राइज, उपलब्धता समूह 1 प्राथमिक, तुल्यकालिक प्रतिबद्ध के साथ 1 पठनीय माध्यमिक।
मैं किसी उपयोगकर्ता से किसी लिंक किए गए सर्वर से या किसी अन्य सर्वर से जुड़ने का इरादा नहीं कर रहा हूं। उपयोगकर्ता SSMS (कोई अन्य एप्लिकेशन) के माध्यम से सीधे डेटाबेस से जुड़ते हैं और मैं चाहूंगा कि एजी लिसनर (या वहां आसपास कुछ) उस उपयोगकर्ता को एक माध्यमिक नोड तक निर्देशित करने में सक्षम हो, यदि कोई उपलब्ध है (क्योंकि यह केवल वहां पहुंच पढ़ चुका है) इसका कोई मतलब नहीं है कि प्राथमिक पहुँच) उपयोगकर्ता के पास कुछ भी करने के लिए नहीं है, क्योंकि वे मशीनों के चारों ओर घूमते हैं और आवेदन के इरादे को जोड़ना भूल जाएंगे। इसके अलावा मैं यह भी जोड़ता हूं कि अतिरिक्त कनेक्शन पैरामीटर हमेशा आपको माध्यमिक नोड तक निर्देशित नहीं करता है।