SQL Server 2000 में, यदि आप भ्रष्ट पृष्ठों की पहचान करना चाहते हैं, तो डेटाबेस विकल्प TORN_PAGE_DETECTION को TRUE पर सेट किया जाना चाहिए।
लेकिन SQL 2005 और ऊपर में, एक नई सेटिंग PAGE_VERIFY ने पुराने TORN_PAGE_DETECTION को बदल दिया जो दो अलग-अलग प्रकार के पृष्ठ सत्यापन से चुनने की अनुमति देता है: TORN_PAGE_DETECTION और CHECKSUM।
अब प्रश्न आता है कि कौन सा सेट करें - TORN_PAGE_DETECTION या CHECKSUM?
TORN_PAGE_DETECTION - पृष्ठ में प्रत्येक 512 बाइट्स के लिए एक बिट लिखता है, जब आप यह पता लगाने की अनुमति देते हैं कि कोई पृष्ठ डिस्क पर सफलतापूर्वक लिखा नहीं गया था। पकड़ यह है कि यह आपको नहीं बताएगा कि क्या उन 512 बाइट्स में संग्रहीत डेटा वास्तव में सही है या नहीं क्योंकि इस तथ्य के कारण कि युगल बाइट्स गलत लिखे गए हैं।
चेक - पृष्ठ के एक चेकसम को तब समाप्त कर देगा जब पृष्ठ लिखा जाता है और जब कोई पृष्ठ पढ़ा जाता है, तो यह मान लेता है कि उस पर चेकसम है।
SQL सर्वर पृष्ठ पर बिट पैटर्न के आधार पर चेकसम की गणना करता है, इसे पृष्ठ शीर्ष लेख में संग्रहीत करता है और फिर पृष्ठ लिखने के लिए I / O जारी करता है। जब SQL सर्वर पृष्ठ को पढ़ता है, तो यह उसी तर्क का उपयोग करके चेकसम को फिर से गणना करता है और फिर पृष्ठ शीर्षक में उपलब्ध मूल्य के साथ तुलना करता है। यदि चेकसम मान मेल खाता है, तो यह माना जाता है कि पृष्ठ लिखने-पढ़ने के चक्र के दौरान दूषित नहीं हुआ।
चूँकि चैक कंप्यूटिंग की लागत प्रत्येक पृष्ठ पर पढ़े और लिखे जाने पर खर्च होती है, इसलिए यह CPU ओवरहेड में जुड़ सकता है और संभवतः आपके कार्यभार के थ्रूपुट को प्रभावित कर सकता है। एक और बात ध्यान में रखना है कि चेकसम पेज पर एक विशिष्ट बिट पैटर्न के लिए अद्वितीय नहीं है। दो पेज संभवतः एक ही चेकसम मान के लिए मैप कर सकते हैं। इसलिए दूरस्थ संभावना है कि पृष्ठ भ्रष्टाचार पूर्ववत हो सकता है।
संदर्भ: SQL2005 में चेकसम
विशेष रूप से अपने सवालों के जवाब देने के लिए:
मेरा मानना है कि SQL2005 में चेकसम को पेश किया गया था और एक पूर्व संस्करण से DB को अपग्रेड या पुनर्स्थापित करना यह पिछले पृष्ठ की सत्यापन विधि को बनाए रखेगा। यानी इसमें कोई अपग्रेड नहीं था।
हाँ CHECKSUM को SQL Server 2005 में पेश किया गया था और यह DEFAULT है । जब आप 2000 से 2005 में अपग्रेड करते हैं, तो आपको स्पष्ट रूप से डेटाबेस विकल्प को बदलना होगा पेज चेक का उपयोग करने के लिए सत्यापित करें।
यदि आप SQL 2005 में चल रहे किसी अन्य सर्वर पर पहले से ही SQL 2005 में बनाए गए डेटाबेस को पुनर्स्थापित करते हैं, तो आपको इसे सेट नहीं करना होगा। यह इस बात पर कायम रहेगा कि आपने कभी पेज वेरिफाई करने का विकल्प क्या रखा है।
जब फटे हुए पृष्ठ का पता चला तो मैं शोध में सफल नहीं हुआ
प्रेषक: http://support.microsoft.com/kb/230785
7.0 से पहले SQL सर्वर के संस्करण
7.0 से पहले SQL सर्वर के संस्करण लॉग समानता या फटे बिट का पता लगाने की सुविधा प्रदान नहीं करते थे। वास्तव में, वे संस्करण एक ही लॉग पेज को कई बार लिख सकते हैं जब तक कि लॉग रिकॉर्ड 2-केबी लॉग पेज नहीं भरते। यह उन लेनदेन को उजागर कर सकता है जो सफलतापूर्वक प्रतिबद्ध हैं। यदि विफलता के दौरान लॉग पृष्ठ को फिर से लिखा जा रहा है, तो प्रतिबद्ध लेनदेन वाला एक सेक्टर ठीक से नहीं लिखा जा सकता है।
इस प्रकार, TORN_PAGE_DETECTION लगभग SQL Server 7.0 के बाद से है। तब भी, डिफ़ॉल्ट यह था कि यह सक्षम नहीं था (उसी लिंक) ।
नोट: फाड़ा पृष्ठ का पता SQL Server 7.0 में डिफ़ॉल्ट रूप से सक्षम नहीं है। अपने सिस्टम पर पता लगाने को सक्षम करने के लिए sp_dboption देखें ।
इसलिए, यदि डेटाबेस को 7.0 उदाहरण के खिलाफ विकसित किया गया था और बाद में उन्नत किया गया था, तो उसने NONE के मौजूदा पृष्ठ VERIFY विकल्प के साथ अपग्रेड किया होगा (जैसा कि @ThomasStringer ने अपने उत्तर में उल्लेख किया है)।
संपादित करें: 09/24/2013 उत्तर को बेहतर बनाने के लिए:
SQLSkills से अपने SQL सर्वर आंतरिक नोटों का संदर्भ देते हुए, मैंने पाया कि पृष्ठ डंप का उपयोग करके, आप यह सत्यापित कर सकते हैं कि क्या फटे हुए बिट डिटेक्शन - TORN_PAGE_DETECTION या CHECKSUM सक्षम थे या नहीं:
use database_name -- change here for your database !!
checkpoint
go
dbcc traceon (3604) -- send output to screen
go
dbcc page (dbaalert, 1,1,0)
dbcc traceoff (3604) -- turn off the trace flag
go
m_tornBits : यह या तो पेज चेकसम या बिट्स है जो फटे-पृष्ठ सुरक्षा बिट्स द्वारा विस्थापित किए गए हैं - डेटाबेस के लिए पेज प्रोटेक्शन किस रूप पर निर्भर है।
नोट : मेरे पास कोई पुराना sql सर्वर संस्करण नहीं है। नीचे sql सर्वर 2000 और ऊपर से पुष्टि की गई है । अगर आपके पास 7.0 या 6.5 चल रहा है, तो आप इसकी पुष्टि कर सकते हैं :-)