SQL सर्वर त्रुटि लॉग फ़ाइल में मुझे निम्न पंक्तियाँ मिलीं:
2018-02-22 14:10:58.95 spid17s Starting up database 'msdb'.
2018-02-22 14:10:58.95 spid16s Starting up database 'ReportServer'.
2018-02-22 14:10:58.95 spid18s Starting up database 'ReportServerTempDB'.
2018-02-22 14:10:58.95 spid19s Starting up database 'XYZ'.
यदि मैं इस समय से पहले डेटाबेस XYZ की स्थिति की जाँच करता हूं, तो यह ONLINE
निम्नलिखित कथन का उपयोग कर रहा है:
SELECT state_desc FROM sys.databases WHERE name='XYZ'
... लेकिन जब मैं C # एप्लिकेशन का उपयोग करके इस डेटाबेस से कनेक्ट करने का प्रयास करता हूं, तो यह डेटाबेस से कनेक्ट नहीं हो सकता।
त्रुटि यह है:
उपयोगकर्ता 'asd' के लिए लॉगिन विफल रहा।
कारण: स्पष्ट रूप से निर्दिष्ट डेटाबेस को खोलने में विफल।
मैंने तीन अलग-अलग उपयोगकर्ताओं (विंडोज उपयोगकर्ता, सा, एसक्यूएल सर्वर उपयोगकर्ता को एप्लिकेशन के लिए परिभाषित किया) की कोशिश की। समस्या तब होती है जब मैं ओएस के स्टार्ट अप में एप्लिकेशन चलाता हूं, लेकिन अगर मैं इसे स्टार्ट अप के बाद मैन्युअल रूप से शुरू करता हूं, तो कोई त्रुटि नहीं होती है, इसलिए मुझे लगता है कि सभी SQL सर्वर सेटिंग्स और फ़ायरवॉल सेटिंग्स सही हैं।
मैंने इससे पहले भी जाँच की थी कि सेवा की स्थिति चल रही है।
मुझे यह सुनिश्चित करने के लिए और क्या जाँचना चाहिए कि डेटाबेस वास्तव में ऑनलाइन है और प्रश्नों के लिए तैयार है?
मैं एक ऐसी कुंजी की तलाश कर रहा हूं जो बताती है कि डेटाबेस को क्वेरी करना ठीक है, बजाय एक समय के लिए देरी के (यहां तक कि स्पष्ट कारण के आधार पर नहीं)।
मैंने टेक्स्ट "स्टार्टिंग डेटाबेस 'एक्सवाईजेड" के लिए त्रुटि लॉग को स्कैन करने के बारे में सोचा, लेकिन इसका मतलब है कि मुझे एसक्यूएल सर्वर त्रुटि लॉग के पथ के लिए आवेदन के लिए एक सेटिंग जोड़ना होगा। इसका मतलब यह भी है कि जब तक मुझे यह वाक्यांश नहीं मिल जाता, तब तक फ़ाइल को कई बार पढ़ना।