यह KB आलेख: किसी विशिष्ट पोर्ट पर सुनने के लिए SQL सर्वर को कॉन्फ़िगर करने के लिए कैसे आप के लिए चीजों को स्पष्ट करेगा:
गतिशील पोर्ट आवंटन
यदि आप डायनेमिक पोर्ट आबंटन का उपयोग करने के लिए SQL सर्वर का एक उदाहरण कॉन्फ़िगर करते हैं, और आपने अभी तक SQL सर्वर के उदाहरण को पुनरारंभ नहीं किया है, तो रजिस्ट्री मान निम्नानुसार सेट हैं:
TCPDynamicPorts = रिक्त
TCPPort = 0
हालाँकि, यदि आप डायनेमिक पोर्ट आबंटन का उपयोग करने के लिए SQL सर्वर का एक उदाहरण कॉन्फ़िगर करते हैं, और आप SQL सर्वर के उदाहरण को पुनरारंभ करते हैं, तो रजिस्ट्री मान निम्नानुसार हैं:
TCPDynamicPorts = वर्तमान पोर्ट जिसका उपयोग किया जाता है
TCPPort = वर्तमान पोर्ट जिसका उपयोग किया जाता है
स्थैतिक पोर्ट आवंटन:
यदि आप स्थैतिक पोर्ट का उपयोग करने के लिए SQL सर्वर का एक उदाहरण कॉन्फ़िगर करते हैं, और आपने अभी तक SQL सर्वर के उदाहरण को पुनरारंभ नहीं किया है, तो रजिस्ट्री मान निम्नानुसार सेट हैं:
TCPDynamicPorts = अंतिम पोर्ट जिसका उपयोग किया जाता है
TCPPort = नया स्टैटिक पोर्ट जिसका उपयोग अगले पुनरारंभ के बाद किया जाना है; सर्वर नेटवर्क सुविधा का उपयोग करके नया स्थिर पोर्ट सेट करें
हालाँकि, यदि आप स्थैतिक पोर्ट का उपयोग करने के लिए SQL सर्वर की एक आवृत्ति को कॉन्फ़िगर करते हैं, और आप SQL सर्वर के उदाहरण को पुनरारंभ करते हैं, तो रजिस्ट्री मान निम्नानुसार हैं:
TCPDynamicPorts = रिक्त
TCPPort = नया स्टैटिक पोर्ट जो आप सर्वर नेटवर्क उपयोगिता का उपयोग करके सेट करते हैं
आपके दूसरे प्रश्न के लिए -
हर बार जब आप SQLServer नाम शुरू करते हैं, तो यह आवंटित पोर्ट का उपयोग करता है। यदि किसी अन्य प्रोग्राम द्वारा पोर्ट का उपयोग किया जाता है , तो SQL सर्वर पुनरारंभ के समय एक और पोर्ट चुनता है। डायनेमिक पोर्ट को पहले स्टार्टअप पर चुना जाता है, और आमतौर पर भविष्य के पुनरारंभ (रजिस्ट्री में संग्रहीत) के माध्यम से समान रहेगा - लेकिन यदि इसका उपयोग दूसरे प्रोग्राम द्वारा किया जाता है फिर SQL सर्वर एक नया पोर्ट चुनेगा। नोट: उत्पाद सेवकों के लिए, मैं केवल स्थैतिक बंदरगाहों का उपयोग करता हूं - सुरक्षा और प्रबंधन क्षमता में आसानी।
नोट: अधिक ठंडी चीज का पता लगाने के लिए:
जांच करें कि क्या टी-एसक्यूएल का उपयोग करते हुए डायनेमिक पोर्ट का उपयोग किया जा रहा है या नहीं:
SELECT NAME
,protocol_desc
,type_desc
,state_desc
,is_admin_endpoint
,port
,is_dynamic_port
,ip_address
FROM sys.tcp_endpoints
आप netstat -ano
cmdline का उपयोग करके जांच कर सकते हैं ।
इसके अतिरिक्त, आप ग्राहक की ओर से रजिस्ट्री में पहले कैश की गई जांच कर सकते हैं कि इसे SQL सर्वर से कनेक्ट करने के लिए किस पोर्ट का उपयोग किया जा रहा है:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect
Second question
मेरे सवाल में देखें ।