पहले प्रयास पर SQL सर्वर टाइमआउट


9

मुझे एक अजीब समस्या हो रही है जहाँ मैं SQL सर्वर 2008 को दूसरे कंप्यूटर पर चलाने की कोशिश करता हूं (दोनों मशीन Win7 64-बिट चल रहा है), या तो Visual Studio में डेटा स्रोत के माध्यम से या SQL प्रबंधन कंसोल के माध्यम से ही।

कनेक्ट करने के पहले प्रयास पर, यह कई बार समाप्त हो गया। दूसरा प्रयास ठीक काम करता है।

मैं किसी भी कठिनाई के बिना दूसरे कंप्यूटर पर शेयरों तक पहुंच सकता हूं, यह सिर्फ पहली बार प्रतीत होता है जब मैं प्रत्येक एप्लिकेशन इंस्टेंस के लिए SQL से कनेक्ट करने का प्रयास करता हूं। यही है, अगर मैं दो विज़ुअल स्टूडियो इंस्टेंसेस खोलता हूं, तो दोनों कनेक्ट करने के पहले प्रयास में विफल हो जाएंगे, लेकिन दूसरे पर सफल होंगे। मुझे प्रत्येक उदाहरण के लिए दो बार कनेक्ट करना होगा (किसी अन्य एप्लिकेशन में असफल / सफलता अनुक्रम की परवाह किए बिना)।

मुझे उम्मीद है कि इसका कोई अर्थ है।

कोई सलाह?


दूसरी मशीन से कनेक्ट करने के लिए आप किस नामकरण विधि का उपयोग कर रहे हैं, क्या आप IP एड्रेस (यानी 192.168.1.1) या किसी नाम का उपयोग कर रहे हैं जैसे: MySqlServer। मुझे संदेह है कि यह एक नाम समाधान समस्या है, आप अपनी मेजबानों फ़ाइल में एसक्यूएल सर्वर का नाम डालकर पुष्टि कर सकते हैं कि किस मामले में समस्या गायब होनी चाहिए।
गोरिल्ला

मशीन नाम से, लेकिन यह मेरे घरेलू नेटवर्क पर है और मैं मशीन के नाम का उपयोग करके इस पर शेयर मार सकता हूं। यह सिर्फ एसक्यूएल है जो मुझे समस्याएं देता है।
सर्जियो

जवाबों:


6

मुझे लगता है कि मुझे इसका समाधान मिल गया है, कम से कम मेरे मामले में यह काम कर रहा है। मैं उदाहरण के नाम का उपयोग कर रहा हूं और यह स्वचालित रूप से sql सर्वर सेवा के लिए एक गतिशील बंदरगाह है। मैंने डायनामिक से फ़िक्स पोर्ट में सेटिंग्स बदल दी हैं और फिर उस पोर्ट पर फ़ायरवॉल खोल दिया है।

SQL सर्वर कॉन्फ़िगरेशन प्रबंधक -> SQL सर्वर नेटवर्क कॉन्फ़िगरेशन -> 'InstanceName' के लिए प्रोटोकॉल -> टीसीपी / आईपी -> गुण -> आईपी पते -> आईपी ऑल ->

यहाँ आप दो विकल्प देखते हैं:

  • टीसीपी डायनेमिक पोर्ट: 51250 (बेतरतीब ढंग से उत्पन्न)
  • टीसीपी पोर्ट: खाली - मैंने यहां 1433 डाला और फिर मैंने फ़ायरवॉल खोला (यदि यह पहले से नहीं खोला गया था)। आप जो चाहें पोर्ट डाल सकते हैं (मैंने 1433 डाला क्योंकि यह एकमात्र उदाहरण था। कई उदाहरणों के मामले में आपको प्रत्येक उदाहरण के लिए एक अलग बंदरगाह चुनना चाहिए और फिर उन्हें फ़ायरवॉल में खोलना चाहिए)

स्क्रिप्ट MS से डाउनलोड किए गए पोर्ट को खोलने के आपके काम को आसान बनाने के लिए इस्तेमाल किया गया था और मैं इसे यहाँ पुन: प्रस्तुत कर रहा हूं (टिप्पणियाँ जर्मन में हैं लेकिन उन्हें स्पष्ट होना चाहिए):

@echo =========  Ports des SQL-Servers  ===================
@echo Aktivieren von Port 1433 für die SQLServer-Standardinstanz
netsh firewall set portopening TCP 1433 "SQLServer" 
@echo Aktivieren von Port 1434 für dedizierte Administratorverbindungen
netsh firewall set portopening TCP 1434 "SQL-Administratorverbindung" 
@echo Aktivieren von Port 4022 für den konventionellen SQL Server-Service Broker  
netsh firewall set portopening TCP 4022 "SQL-Service Broker" 
@echo Aktivieren von Port 135 für Transact-SQL-Debugger/RPC 
netsh firewall set portopening TCP 135 "SQL-Debugger/RPC" 
@echo =========  Ports für Analysedienste  ==============
@echo Aktivieren von Port 2383 für die SSAS-Standardinstanz
netsh firewall set portopening TCP 2383 "Analysedienste" 
@echo Aktivieren von Port 2382 für den SQL Server-Browserdienst
netsh firewall set portopening TCP 2382 "SQL-Browser" 
@echo =========  Verschiedene Anwendungen  ==============
@echo Aktivieren von Port 80 für HTTP 
netsh firewall set portopening TCP 80 "HTTP" 
@echo Aktivieren von Port 443 für SSL
netsh firewall set portopening TCP 443 "SSL" 
@echo Aktivieren des Ports für die Schaltfläche 'Durchsuchen' des SQL Server-Browserdiensts
netsh firewall set portopening UDP 1434 "SQL-Browser" 
@echo Zulassen von Multicast-/Broadcastantwort auf UDP (Aufzählung der Browserdienste OK)
netsh firewall set multicastbroadcastresponse ENABLE

2

मेरे सर्वोत्तम अनुमान यहाँ है कि आप है AUTO_CLOSE डेटाबेस के लिए चालू कर दिया। इसका मतलब है कि जब आप कनेक्ट करते हैं तो डेटाबेस को स्पिन-अप करने की आवश्यकता होती है, जो कि इनबिल्ट टाइम-आउट का कारण बन रहा है।

दूसरा अनुमान यह है कि यह होस्टनाम रिज़ॉल्यूशन संबंधित हो सकता है। तो यह होस्टनाम को पहली बार (शायद प्रसारण द्वारा?) हल करने के लिए बहुत लंबा है, लेकिन फिर बाद के कनेक्शन के प्रयासों पर कैश किया जाता है। होस्ट को हल करने के लिए आप क्या उपयोग कर रहे हैं? क्या यह DNS में है? एक आईपी, पोर्ट प्रारूप में होने के लिए कनेक्शन स्ट्रिंग को बदलने का प्रयास करें। यानी 192.168.100.100,1433

तुम भी चलाने की कोशिश कर सकते हैं ipconfig /flushdnsएक सफल कनेक्शन प्रयास के बाद और देखें कि आप तो एक ही व्यवहार मिलता है। कुशल तरीके को अपने मेजबान फ़ाइल में देखने डाल करने के लिए है, लेकिन आप इसे ठीक तरह से ठीक करना चाहिए।


पहले से ही सभी डेटाबेस पर बंद (0) के लिए निर्धारित किया है। हालाँकि, यह क्लाइंट से सिर्फ पहला प्रयास नहीं है, यह क्लाइंट पर चलने वाले प्रत्येक ऐप के लिए पहला प्रयास है (इसलिए SQL स्टूडियो के लिए दूसरा प्रयास कनेक्ट करता है, जबकि यह चल रहा है, मैं VS2010 को स्पिन करता हूं यह पहले कॉन पर विफल रहता है, लेकिन 2 पर सफल होता है ... हालांकि स्टूडियो पहले से जुड़ा हुआ है और चल रहा है)।
सर्जियो

शायद इसकी डीएनएस / होस्टनाम संकल्प संबंधित? अगर यह गायब हो जाता है SQL सर्वर आईपी / पोर्ट का उपयोग कर कनेक्ट और देखने के लिए अपने कनेक्शन स्ट्रिंग बदलने का प्रयास करें
निक Kavadias

2

अंधेरे में एक आंखों पर पट्टी पहने हुए एक लंबे शॉट की तरह लगता है, लेकिन यह मदद कर सकता है। Microsoft SQL डेवलपर फ़ोरम में एक पुराना थ्रेड है, जो यह बताता है कि एक समान समस्या क्या है, साथ ही साथ एक संभावित फिक्स भी दिखती है। उनके सर्वर विंडोज सर्वर 2008 चल रहा है, लेकिन प्रासंगिक हो सकता है आपके Win7 भी की स्थापना के लिए।

सूत्र:

http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/58bd9c4d-0572-4567-8e32-82a7fd600022

धागे से:

हां, मैंने इस समस्या को ठीक कर दिया है।

SASL LDAP बाइंड्स (चेतावनी 2886 देखें) को अस्वीकार करने के लिए मेरे विंडोज़ सर्वर 2008 को कॉन्फ़िगर किया गया था।

चूंकि मैंने अपने सर्वर को ऐसे बाइंड्स को अस्वीकार नहीं करने के लिए कॉन्फ़िगर किया है, इसलिए SQL Server 2008 कनेक्शन सही काम करते हैं।

आप LDAP हस्ताक्षर सेटिंग्स को संशोधित करने के बारे में जानकारी के लिए Microsoft KB 935834 पर देख सकते हैं (जैसा कि मैं एक नया उपयोगकर्ता हूं, इसे लिंक नहीं कर सकता)।

आशा है ये मदद करेगा!


0

फ़ायरवॉल को अक्षम करें। टेस्ट नेटवर्क (पिंग)। एसक्यूएल सर्वर से सूंघ नेटवर्क यातायात (उपयोग wireshark )


0

आप एसक्यूएल प्रोफाइलर चलाने की कोशिश कर सकते हैं इससे पहले कि आप या तो वी.एस. या SSMS साथ पहली बार के लिए कनेक्ट, और देखते हैं कि SQL सर्वर पर हो रहा है?

इसके अलावा, क्या आपने इवेंट लॉग की जाँच की है कि क्या कुछ लॉग किया जा रहा है?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.