DBCC CHECKDB SQL सर्वर डेटाबेस 100% यकीन है कि कोई भ्रष्टाचार नहीं है के लिए महत्वपूर्ण है । हालाँकि, डेटाबेस के आकार में बड़े पैमाने पर वृद्धि होने के कारण, 24x7 होने का दावा करने पर इसका रखरखाव विंडो ढूंढना बहुत कठिन है। वर्षों से, SQL सर्वर टीम ने विभिन्न तंत्रों को लागू किया है जो विशेष रूप से हार्डवेयर के कारण होने वाले भौतिक भ्रष्टाचार से संबंधित भ्रष्टाचारों के सबसे सामान्य रूपों का पता लगाएगा।
SQL सर्वर 2005 और ऊपर में PAGE_VERIFY = CHECKSUM है जो आपको डेटाबेस पेजों में शारीरिक भ्रष्टाचार का पता लगाने में मदद कर सकता है, जिससे प्रत्येक पृष्ठ पर एक चेकसम जोड़ सकता है क्योंकि यह I / O सिस्टम को लिखा गया है और चेकसम को मान्य करता है क्योंकि यह डिस्क से पढ़ा जाता है।
इसके अलावा, CHECKSUM के साथ बैकअप (पूर्ण या अंतर) हार्डवेयर के कारण किसी भी I / O भ्रष्टाचार का पता लगाने की गारंटी देगा।
इसलिए, भ्रष्टाचार के हार्डवेयर पक्ष से, SQL सर्वर इसका पता लगाने और इसे रिपोर्ट करने का एक अच्छा काम करता है। ( महत्वपूर्ण भ्रष्टाचार से संबंधित अलर्ट भी सेट करना सुनिश्चित करें )।
कहा जा रहा है, अभी भी तार्किक भ्रष्टाचार , स्क्राइब्लर प्रेरित त्रुटियां - जहां इन-मेमरी पेज SQL सर्वर प्रक्रिया के अंदर चल रहे थर्ड-पार्टी कोड या विंडोज कर्नेल मोड और / या SQL सर्वर में निष्पादित पर्याप्त विशेषाधिकार के साथ ड्राइवरों या अन्य सॉफ़्टवेयर द्वारा दूषित हैं। कीड़े , आदि उपर्युक्त विधियों का उपयोग करने में असमर्थ हैं और इसलिए CHECKDB तस्वीर में आता है।
DBCC CHECKDB अधिक गहन जाँच करता है जिसमें संभावित भ्रष्टाचार के लिए पृष्ठ शीर्षकों की जाँच करना शामिल है जो किसी अन्य माध्यम से पता लगाने योग्य नहीं हैं।
किसी भी मौजूदा स्क्रिप्ट वहाँ?
पहिया को फिर से मजबूत करने के बजाय, मैं आपको ओला के एसक्यूएल सर्वर इंटीग्रिटी चेक सॉल्यूशन पर एक नज़र डालने की अत्यधिक सलाह दूंगा
कुशलतापूर्वक DBCC CHECKDB चल रहा है:
जब आप CHECKDB को चलाने के लिए विशाल डेटाबेस या डेटाबेस की उच्च संख्या वाले रखरखाव विंडो में तंग हैं, तो आपको बस रचनात्मक होने की आवश्यकता है।
SQLSkills प्रशिक्षण में भाग लेने के बाद, मैंने अपने परिवेश में जो लागू किया है वह है:
- जाँच करने के लिए कौन सी तालिकाएँ महत्वपूर्ण हैं, इस पर प्राथमिकता दें।
- अलग-अलग प्राथमिकताओं वाले समूहों में तालिकाओं को अलग करें और फिर दौड़ने
DBCC CHECKTABLE
के साथ चलाएं DBCC CHECKALLOC
औरDBCC CHECKCATALOG
- एक कार्यकर्ता तालिका बनाएं जो प्राथमिकताओं के साथ तालिका नामों को संग्रहीत करेगी। बस यह सुनिश्चित कर लें कि सभी उच्च प्राथमिकता वाले टेबल (जो बड़े पैमाने पर बड़े हैं) एक समूह में नहीं हैं और आपका CHECKDB बिल्कुल भी पूरा नहीं होगा।
- आप अपनी वर्कर टेबल में एक टाइमआउट कॉलम भी रख सकते हैं, जो रखरखाव खिड़की से गुजरने के बाद आपके CHECKDB को मार देगा।
- जोड़ने के लिए प्रति तालिका में कितना समय लगा
DBCC CHECKTABLE
, DBCC CHECKALLOC
और DBCC CHECKCATALOG
। ताकि आप यह महसूस कर सकें कि आपके चेक को चलाने के लिए आमतौर पर कितना समय लगता है ।
- आप
NOINDEX
विकल्प के साथ भी चल सकते हैं क्योंकि यह ऑपरेशन को गति देगा क्योंकि यह उपयोगकर्ता तालिकाओं पर गैर-क्लस्टर इंडेक्स की जांच नहीं करता है। इसका कुछ लाभ है क्योंकि यह महत्वपूर्ण नहीं है क्योंकि डेटा भ्रष्टाचार के रूप में महत्वपूर्ण है क्योंकि कोई डेटा नहीं खोता है और यदि आवश्यक हो तो आप सूचकांक को छोड़ और फिर से बना सकते हैं।
जाहिर है, एंटरप्राइज़ संस्करण DBCC स्टेटमेंट के समानांतर निष्पादन का लाभ उठा सकता है, लेकिन MAXDOP सेटिंग के लिए देखें क्योंकि यह आपके सभी CPU को समाप्त कर सकता है। यह संसाधन राज्यपाल द्वारा सीमित किया जा सकता है।
नोट: यदि आपके पास स्पार्स कॉलम है, तो आपका CHECKDB यहाँ बताए अनुसार धीमा हो जाएगा ।
अंत में, यह डेटाबेस उपलब्ध भ्रष्टाचार को रोकने के लिए कैसे सभी उपलब्ध उपकरण सेट का उपयोग करके + अपने डेटाबेस सर्वर हार्डवेयर सिस्टम में आपके विश्वास और सबसे महत्वपूर्ण रूप से आपके डेटा का मूल्य।
कुछ उत्कृष्ट संदर्भ: