डायनामिक पोर्ट "डायनामिक" कब होता है?


23

मैं आज Dynamic Portsअपने एक सहकर्मी के साथ चर्चा कर रहा था और कुछ मदद का उपयोग करके स्पष्ट कर सकता हूं कि वे कैसे काम करते हैं।

पहला प्रश्न: यदि IPALL TCP Dynmaic Portsसेटिंग एक विशिष्ट संख्या है (1971 कहो) जो यह दर्शाता है कि आपके पास 1971 का स्थिर पोर्ट है या एक गतिशील पोर्ट है जो वर्तमान में 1971 है और भविष्य में किसी बिंदु पर बदल सकता है।

यहाँ छवि विवरण दर्ज करें

दूसरा प्रश्न: यह वह है जिसके बारे में मैं सबसे अधिक उत्सुक हूं। हमारे पास एक उदाहरण है जिसमें IPALL TCP Dynmaic Portsदर्जनों उदाहरण पुनरारंभ के माध्यम से कई वर्षों तक एक ही बंदरगाह ( सेटिंग में मूल्य ) रहा है। उदाहरण के पुनः आरंभ होने के बाद वास्तव में डायनेमिक पोर्ट वास्तव में बदलने का कारण बनता है?

जवाबों:


22

यह 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 -anocmdline का उपयोग करके जांच कर सकते हैं ।

इसके अतिरिक्त, आप ग्राहक की ओर से रजिस्ट्री में पहले कैश की गई जांच कर सकते हैं कि इसे SQL सर्वर से कनेक्ट करने के लिए किस पोर्ट का उपयोग किया जा रहा है:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect

यहाँ छवि विवरण दर्ज करें


धन्यवाद और यह एक बहुत ही उपयोगी कड़ी है! क्या आप जानते हैं कि बंदरगाहों को बदलने के लिए एक गतिशील बंदरगाह का क्या कारण है? ऊपर Second questionमेरे सवाल में देखें ।
केनेथ फिशर

आपके लिए @KennethFisher second question- हर बार जब आप SQLServer नाम शुरू करते हैं, यह आवंटित पोर्ट का उपयोग करता है। यदि किसी अन्य प्रोग्राम द्वारा पोर्ट का उपयोग किया जाता है तो SQL सर्वर पुनरारंभ के समय किसी अन्य पोर्ट को चुनता है। डायनेमिक पोर्ट को पहले स्टार्टअप पर चुना जाता है, और आम तौर पर भविष्य के पुनरारंभ (रजिस्ट्री में संग्रहीत) के माध्यम से समान रहेगा - लेकिन अगर इसका उपयोग किसी अन्य प्रोग्राम द्वारा किया जाता है तो SQL सर्वर एक नया पोर्ट चुन लेगा। नोट : उत्पाद सेवकों के लिए, मैं केवल स्थैतिक बंदरगाहों का उपयोग करता हूं - सुरक्षा और प्रबंधन क्षमता में आसानी।
परिजन शाह

क्या आप यह समझाने की कोशिश करेंगे कि आपको ऐसा क्यों लगता है कि यह पूरी तरह से नई सेवा (एसक्यूएल सर्वर ब्राउज़र) को लागू करने के लायक है, जो स्टैटिक पोर्ट पर काम कर रहा है, इसलिए यह शुरू नहीं हो सकता है यदि यह पोर्ट उपयोग किया जाता है, तो सिर्फ इसलिए कि आप एसक्यूएल सर्वर को शुरू करना चाहते हैं ऐसा मामला जहां कुछ अन्य सेवाएं उन बंदरगाहों का उपयोग कर रही हैं जो आप शायद सबसे महंगे सॉफ़्टवेयर के साथ संलग्न करने के लिए अनाड़ी हैं?
काकज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.