DBCC CHECKDB हर 20 - 60 सेकंड फायरिंग


13

मेरे पास एक देव वातावरण है जो तेजी से उत्पादन में तैनाती के करीब पहुंच रहा है और लॉग में देखा है कि लगभग हर 20 सेकंड में मैं संदेश देखता हूं:

Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors

मैंने इस पर ध्यान दिया क्योंकि यह परीक्षण करने वाले अंतिम उपयोगकर्ताओं में एक समस्या थी जिसे मैंने एक त्रुटि के लिए अलग कर दिया था जिसे मैंने विंडोज इवेंट लॉग (एप्लिकेशन लॉग) में देखा था:

The log for database 'dbname' is not available. Check event log for related messages.

संयोग से, मुझे कोई संबंधित संदेश नहीं मिला लेकिन ऑफ़लाइन / ऑनलाइन चक्र के साथ हल किया गया।

केवल एक चीज मैं सोच सकता हूं कि यह एप्लिकेशन हर 1ms पर डेटा एकत्र करता है, लेकिन यह सभी डेटा डेटाबेस में सम्मिलित नहीं होता है। एक देव सर्वर होने के नाते, यह कॉन्फ़िगर किया गया था ताकि लॉग और डेटा एक ही ड्राइव पर हों। इन दो सूचनाओं को ध्यान में रखते हुए, मैं एक IO समस्या होने की ओर झुक रहा हूं और यह कि सर्वर इसके स्टोरेज (SAN) से कनेक्शन के नुकसान से उबरने का प्रयास कर रहा है। फिर भी इससे मुझे कोई मतलब नहीं है क्योंकि यह सभी dbs नहीं खो रहा है, बस यह एक है। इसके कारण और क्या हो सकता है?

प्लेटफ़ॉर्म: Windows Server 2008 R2 (Std।) पर SQL Server 2008 R2 (Ent।)

जवाबों:


22

इसका कारण आप देख रहे हैं:

Starting up database 'dbname'
CHECKDB for database 'dbname' finished without errors

क्योंकि आपके पास अपने डेटाबेस विकल्प के लिए सेट है AutoClose

AutoClose को बंद करने के लिए, यह करें:

alter database YourDatabase
set auto_close off
go

क्या AutoCloseकरता है पिछले उपयोगकर्ता प्रक्रिया डिस्कनेक्ट के बाद डेटाबेस को बंद कर दिया है। और फिर डेटाबेस स्वचालित रूप से " फिर से खुलता है " जब अगला उपयोगकर्ता कनेक्शन कनेक्ट करने का प्रयास करता है।

आमतौर पर AutoCloseफिर से डेटाबेस को स्पिन करने के लिए स्पष्ट विलंबता के कारण, ऑफ रखना सबसे अच्छा अभ्यास है । मैं आपके प्रश्न से समझता हूं कि यह एक विकास का वातावरण है, लेकिन आपको इसकी आवश्यकता भी नहीं होनी चाहिए (और आप निश्चित रूप से अपने उत्पादन वातावरण में ऐसा नहीं चाहते हैं)।

इसके अलावा DBCC CHECKDBवास्तव में "प्रत्येक 20 - 60 सेकंड फायरिंग नहीं" प्रश्न शीर्षक के अनुसार, यह सिर्फ इस तरह से प्रकट होता है!

SQL सर्वर 2005 के बाद से dbi_dbccLastKnownGood मान (यदि वर्तमान में) त्रुटि लॉग में हर बार डेटाबेस शुरू होने की सूचना दी जाती है। तो आप बस वही ऐतिहासिक जानकारी बार-बार प्रस्तुत कर रहे हैं।

यह विषय लेख में शामिल किया गया है क्यों SQL सर्वर मेरे डेटाबेस के खिलाफ सर्वर स्टार्टअप पर DBCC CHECKDB चल रहा है?

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