এসকিউএল সার্ভার 2000-এ, আপনি যদি দূষিত পৃষ্ঠাগুলি সনাক্ত করতে চান, তবে ডাটাবেস বিকল্প TORN_PAGE_DETECTION টি সত্যতে সেট করা উচিত।
তবে এসকিউএল ২০০৫ এবং তারপরে একটি নতুন সেটিং PAGE_VERIFY পুরানো TORN_PAGE_DETECTION প্রতিস্থাপন করেছে যা দুটি পৃথক ধরণের পৃষ্ঠা যাচাইকরণ থেকে চয়ন করতে দেয়: TORN_PAGE_DETECTION এবং CHECKSUM।
এখন প্রশ্ন আসে কোনটি সেট করতে হবে - TORN_PAGE_DETECTION বা CHECKSUM?
TORN_PAGE_DETECTION - একটি পৃষ্ঠায় প্রতি 512 বাইটের জন্য কিছুটা লিখে দেয় যখন কোনও পৃষ্ঠা সফলভাবে ডিস্কে লিখিত হয়নি তখন আপনাকে সনাক্ত করতে দেয়। ক্যাচটি হ'ল এটি আপনাকে জানাতে চাইবে না যে এই 512 বাইগুলিতে সঞ্চিত ডেটা আসলে সঠিক কিনা বা এই নয় যে কয়েকটা বাইট ভুল লিখেছিল।
চেকসাম - পৃষ্ঠা লিখিত হওয়ার সময় এবং পৃষ্ঠাটি যখন পড়বে তখন অনুমান করে যে এতে চেকসাম রয়েছে উভয়ই পৃষ্ঠার চেকসাম কেটে যাবে।
এসকিউএল সার্ভার পৃষ্ঠার বিট প্যাটার্নের উপর ভিত্তি করে চেকসামটি গণনা করে এটি পৃষ্ঠা শিরোনামে সঞ্চয় করে এবং তারপরে পৃষ্ঠাটি লেখার জন্য I / O জারি করে। এসকিউএল সার্ভার পৃষ্ঠাটি পড়লে, এটি একই যুক্তি ব্যবহার করে চেকসামটি পুনরায় গণনা করে এবং তারপরে পৃষ্ঠা শিরোনামে উপলব্ধ মানের সাথে তুলনা করে। যদি চেকসাম মানটি মেলে তবে ধরে নেওয়া হয় যে লেখার সময় পড়ার সময় পৃষ্ঠাটি দূষিত হয়নি।
যেহেতু প্রতিটি পৃষ্ঠায় পড়তে এবং লেখার জন্য চেকসুমটি গণনা করার জন্য ব্যয় করা হয়, এটি সিপিইউ ওভারহেডে যুক্ত করতে পারে এবং সম্ভবত আপনার কাজের চাপের আউটপুটকে প্রভাবিত করতে পারে। আরেকটি বিষয় মনে রাখবেন যে পৃষ্ঠায় নির্দিষ্ট বিট প্যাটার্নের জন্য চেকসামটি অনন্য নয়। দুটি পৃষ্ঠা সম্ভবত একই চেকসাম মানের মানচিত্র করতে পারে। সুতরাং পৃষ্ঠা দুর্নীতি সনাক্ত করা যেতে পারে এমন দূরবর্তী সম্ভাবনা রয়েছে।
তথ্যসূত্র: এসকিউএল 2003 এ চেকসাম
বিশেষভাবে আপনার প্রশ্নের উত্তর দিতে:
আমি বিশ্বাস করি চেকসাম এসকিউএল ২০০৫ সালে প্রবর্তিত হয়েছিল এবং পূর্ববর্তী সংস্করণ থেকে একটি ডিবি আপগ্রেড বা পুনরুদ্ধার করা এটি পূর্ববর্তী পৃষ্ঠা যাচাইয়ের পদ্ধতি বজায় রাখে। অর্থাত্ কোনও অন্তর্নিহিত আপগ্রেড ছিল না।
হ্যাঁ CHECKSUM এসকিউএল সার্ভার 2005 সালে চালু হয়েছিল এবং এটি হ্রাস । আপনি 2000 থেকে 2005 এ আপগ্রেড করার সময়, আপনাকে চেকসুম ব্যবহার করার জন্য স্পষ্টভাবে ডেটাবেস বিকল্প পৃষ্ঠা যাচাই করতে হবে।
আপনি যদি এসকিএল ২০০৫-তে ইতিমধ্যে তৈরি ডাটাবেসটি অন্য সার্ভারে চলমান স্কেল ২০০ to এ পুনরুদ্ধার করেন তবে আপনাকে এটি সেট করতে হবে না। আপনি পৃষ্ঠা যাচাইকরণ বিকল্পটি কখনও সেট করেছেন তা অবিরত থাকবে।
টর্ন পেজ সনাক্তকরণ কখন আসেনি আমি গবেষণায় সফল হইনি
থেকে: http://support.microsoft.com/kb/230785
এসকিউএল সার্ভারের সংস্করণগুলি 7.0 এর আগে earlier
এসকিউএল সার্ভারের সংস্করণগুলি .0.০ এরও বেশি আগে লগ প্যারিটি বা ছেঁড়া বিট সনাক্তকরণ সুবিধা সরবরাহ করে না। প্রকৃতপক্ষে, লগ রেকর্ডগুলি 2-কেবি লগ পৃষ্ঠাটি পূরণ না করা পর্যন্ত এই সংস্করণগুলি একই লগ পৃষ্ঠা একাধিক বার লিখতে পারে। এটি সফলভাবে প্রতিশ্রুতিবদ্ধ লেনদেনের প্রকাশ করতে পারে। যদি ব্যর্থতার সময় লগ পৃষ্ঠাটি পুনরায় লেখা হয়, তবে প্রতিশ্রুতিবদ্ধ লেনদেন সহ একটি সেক্টর সঠিকভাবে আবারও লেখা যাবে না।
সুতরাং, এসএকিউএল সার্ভার .0.০ থেকে TORN_PAGE_DETECTION প্রায় হয়েছে। তারপরেও, ডিফল্টটি হ'ল এটি সক্ষম করা হয়নি (একই লিঙ্ক) ।
দ্রষ্টব্য এসকিউএল সার্ভার 7.0-এ ডিফল্টরূপে ছেঁড়া পৃষ্ঠাগুলি সনাক্ত করা সক্ষম নয়। আপনার সিস্টেমে কীভাবে সনাক্তকরণ সক্ষম করবেন সে জন্য sp_dboption দেখুন ।
অতএব, যদি ডাটাবেসটি .0.০ উদাহরণের বিপরীতে তৈরি করা হয় এবং পরবর্তীকালে এটি আপগ্রেড করা হয় তবে এটি NONE এর বিদ্যমান PAGE VERIFY বিকল্পের সাহায্যে আপগ্রেড করা হত (@ থমাস স্ট্রিংগার তার উত্তরে উল্লিখিত হয়েছে)।
সম্পাদনা করুন: 09/24/2013 উত্তরটি উন্নত করতে:
এসকিউএলস্কিলগুলি থেকে আমার এসকিউএল সার্ভার অভ্যন্তরীণ নোটগুলির প্রতি উল্লেখ করে, আমি দেখতে পেয়েছি যে পৃষ্ঠার ডাম্প ব্যবহার করে, আপনি ছেঁড়া বিট সনাক্তকরণটি যাচাই করতে পারবেন - 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 : এটিতে পৃষ্ঠার চেকসাম বা বিটগুলি রয়েছে যা ছেঁড়া পৃষ্ঠার সুরক্ষা বিট দ্বারা বাস্তুচ্যুত হয়েছিল - ডাটাবেসের জন্য পৃষ্ঠা সুরক্ষার কোন ফর্মের উপর নির্ভর করে।
দ্রষ্টব্য : আমার কোনও পুরনো এসকিএল সার্ভার সংস্করণ চলছে না। নীচে স্কিএল সার্ভার 2000 এবং এর থেকে নিশ্চিত করা হয়েছে । আপনার যদি 7.০ বা .5.৫ চলমান থাকে তবে আপনি এটিও নিশ্চিত করতে পারেন :-)