একাধিক দিনের জন্য ডিবিসিসি CHECKDB ভাগ করা


10

আমি পল রান্ডালকে ডিবিসিসি CHECKDB কে ম্যানুয়ালি ছড়িয়ে দেওয়ার পদ্ধতিটি খুব বড় ডেটাবেসগুলির জন্য বেশ কয়েকটি দিন ধরে প্রয়োগ করতে কাজ করছি , যা মূলত:

  • ডাটাবেসে টেবিলগুলি প্রায় 7 টি বালতির মধ্যে সমানভাবে ভাগ করা
  • সপ্তাহে দু'বার ডিবিসিসি চেকললক চালাচ্ছেন
  • সপ্তাহে একবার ডিবিসিসি চেকক্যাটলোগ পরিচালনা করা
  • সপ্তাহের প্রতিটি দিন একটি বালতিতে একটি ডিবিসিসি চেকটাবল চালানো

কেউ কি এই কৌশলটি ব্যবহার করেছেন? কোন বিদ্যমান স্ক্রিপ্ট সেখানে আছে?

আমি উদ্বিগ্ন, এটি সম্ভবত CHECKDB যা কিছু করে তা coverেকে রাখে না; CHECKDB এর জন্য বই অনলাইন ডকুমেন্টেশন বলছে যে চেকললক, চেকক্যাটালোগ এবং চেকটাবল ছাড়াও এটি:

  • ডাটাবেসটিতে প্রতিটি সূচীকরণ সামগ্রীর সামগ্রীর যাচাই করে।
  • টেবিল মেটাডেটা এবং ফাইল সিস্টেম ডিরেক্টরি এবং ফাইলের মধ্যে ফাইল-সিস্টেমে ভারবাইনারি (সর্বাধিক) ডেটা সংরক্ষণ করার সময় লিঙ্ক-স্তরের সামঞ্জস্যতা বৈধ করে। (কেবলমাত্র এসকিউএল ২০০৮)
  • ডাটাবেসে পরিষেবা ব্রোকার ডেটা যাচাই করে।

সুতরাং এখানে আমার প্রশ্নগুলি:

  1. এই অতিরিক্ত চেকগুলি প্রয়োজনীয় / গুরুত্বপূর্ণ? (সূচী দর্শনগুলি সম্ভবত আমার সম্পর্কে কিছুটা বেশি, আমি মনে করি না যে আমরা এখনও পরিষেবা ব্রোকার বা ফাইলস্ট্রেম ব্যবহার করছি))

  2. যদি তা হয় তবে এই অতিরিক্ত চেকগুলি আলাদাভাবে সম্পাদন করার উপায় আছে কি?

  3. CHECKALLOC এবং CHECKCATALOG খুব দ্রুত চলবে বলে মনে হচ্ছে এমনকি বড় ডিবিএসেও। এগুলো প্রতিদিন না চালানোর কোনও কারণ?

(দ্রষ্টব্য: এটি কয়েকশত সার্ভার জুড়ে বিদ্যমান ডাটাবেসগুলির কয়েক হাজারের জন্য, বা একটি নির্দিষ্ট আকারের কমপক্ষে প্রতিটি ডাটাবেসের জন্য একটি স্ট্যান্ডার্ড রুটিন হবে This


পল তার ব্লগে দেওয়া মন্তব্যে এই প্রশ্নের একটি সংস্করণে জবাব দিয়েছেন। তিনি বলেছিলেন "ইনডেক্সড ভিউ বৈধতা নিয়ে উদ্বেগ প্রকাশ করবেন না। এটি ২০০৮ সাল থেকে ডিফল্টরূপে বন্ধ কারণ এটি সমস্যা খুঁজে পাচ্ছে না।"
ব্র্যাডসি

আমিও এটি করতে কাজ করছি - আপনি যে পরামর্শ / সন্ধান পেয়েছেন তা যেহেতু আপনি ইতিমধ্যে এটি প্রয়োগ করেছেন?
scsimon

1
@scsimon আমি এটি ভালভাবে কাজ করতে পেরেছি, সারণীগুলি বিভক্ত করার জন্য নির্দিষ্ট কৌশলটির জন্য এই সম্পর্কিত প্রশ্নটি দেখুন । আমি মনে করি আমি দৈনিক "বালতি "গুলিতে বিভক্ত হয়ে পুরো সার্ভারে সমস্ত (বৃহত) ডাটাবেসে সমস্ত টেবিলের একটি মাস্টার তালিকা তৈরি করেছি , যা প্রতিটি ডাটাবেসের তালিকাকে পৃথকভাবে ভাগ করে নেওয়ার চেয়ে আমাকে আরও অনেক বেশি বিভক্ত করেছিল। ছোট ডাটাবেসগুলি আমি প্রতিদিন একটি সম্পূর্ণ ডিবিসিসি করেছিলাম, এবং বিভাজনের অংশ ছিল না।
ব্র্যাডিসি

উত্তর:


6

এই অতিরিক্ত চেকগুলি প্রয়োজনীয় / গুরুত্বপূর্ণ? (সূচী দর্শনগুলি সম্ভবত আমার সম্পর্কে কিছুটা বেশি, আমি মনে করি না যে আমরা এখনও পরিষেবা ব্রোকার বা ফাইলস্ট্রেম ব্যবহার করছি))

আপনি DBCC CHECKTABLE WITH EXTENDED_LOGICAL_CHECKS সরাসরি তালিকাবদ্ধ দর্শনগুলিতে চালাতে পারেন । সূচিযুক্ত দর্শনগুলি পরীক্ষা করা নির্দিষ্ট পরিস্থিতিতে সমস্যাযুক্ত হতে পারে , সুতরাং ফলস্বরূপ যে কোনও মিথ্যা ইতিবাচক তদন্ত করার জন্য প্রস্তুত থাকুন। (পল রান্ডাল উল্লেখ করা নিবন্ধের মন্তব্যেও উল্লেখ করেছেন যে ভ্রান্ত sণাত্মকগুলিও সম্ভব, তবে এর কোনও প্রত্যক্ষ অভিজ্ঞতা আমার কাছে নেই।)

যদি তা হয় তবে এই অতিরিক্ত চেকগুলি আলাদাভাবে সম্পাদন করার উপায় আছে কি?

পরিষেবা ব্রোকার বা FILESTREAMচেক আলাদাভাবে চালানোর জন্য কোনও সমর্থন নেই, না।

CHECKALLOCএবং CHECKCATALOGবড় dbs এমনকি খুব দ্রুত চালানো হয় বলে মনে হচ্ছে। এগুলো প্রতিদিন না চালানোর কোনও কারণ?

এমন নয় যে আমি জানিনা.


আপনি দৌড় বিবেচনা করতে পারেন DBCC CHECKCONSTRAINTS। এই চেক না অন্তর্ভুক্ত মধ্যে DBCC CHECKDBকোনো বিকল্প উল্লেখ করতে পারেন নির্বিশেষে। আপনি মাঝে মাঝে চলমান CHECKDB, কখন এবং কখন পরিস্থিতির অনুমতি দেয় সে সম্পর্কে ভাবতে চাইতে পারেন ।


6

এসকিউএল সার্ভার ডাটাবেসগুলির জন্য 100% নিশ্চিত হওয়া উচিত যে কোনও দুর্নীতি নেই তা ডিবিসিসি চেকডিডিবি গুরুত্বপূর্ণ । যাইহোক, ডাটাবেস আকারে বিশাল আকার ধারণ করার কারণে, আপনি যখন 24x7 আপ বলে দাবি করেন তখন রক্ষণাবেক্ষণ উইন্ডোটি পাওয়া খুব কঠিন hard বছরের পর বছর ধরে, এসকিউএল সার্ভার টিম বিভিন্ন ব্যবস্থা প্রয়োগ করেছে যা বিশেষত হার্ডওয়্যার দ্বারা সৃষ্ট শারীরিক দুর্নীতির সাথে সম্পর্কিত দুর্নীতির সর্বাধিক সাধারণ রূপগুলি সনাক্ত করবে।

এসকিউএল সার্ভার ২০০৫ এবং তারপরে PAGE_VERIFY = CHECKSUM রয়েছে যা আপনাকে ডাটাবেস পৃষ্ঠাগুলিতে সক্রিয়ভাবে শারীরিক দুর্নীতি সনাক্ত করতে সহায়তা করতে পারে যার ফলে প্রতিটি পৃষ্ঠায় I / O সিস্টেমে লিখিত রয়েছে এবং চেকসামটি এটি ডিস্ক থেকে পড়ার সাথে সাথে বৈধতা দেয়।

এছাড়াও, CHECKSUM এর সাথে ব্যাকআপ (পূর্ণ বা ডিফারেনশিয়াল) হার্ডওয়্যার দ্বারা সৃষ্ট যে কোনও I / O দুর্নীতি সনাক্ত করার গ্যারান্টি দিবে।

সুতরাং, দুর্নীতির হার্ডওয়্যার দিক থেকে, এসকিউএল সার্ভার এটি সনাক্ত এবং এটির প্রতিবেদন করার জন্য ভাল কাজ করে। ( গুরুত্বপূর্ণ দুর্নীতির সাথে সম্পর্কিত সতর্কতাগুলিও সেট করে দেওয়ার বিষয়টি নিশ্চিত করুন )।

বলা হচ্ছে, এখনও যৌক্তিক দুর্নীতি , স্ক্রিবলার প্রেরিত ত্রুটি - যেখানে এসকিউএল সার্ভার প্রক্রিয়াটির মধ্যে থাকা তৃতীয় পক্ষের কোড দ্বারা বা উইন্ডোজ কার্নেল মোডে এবং / অথবা এসকিউএল সার্ভারে চালিত পর্যাপ্ত অধিকার সহ ড্রাইভার বা অন্য সফ্টওয়্যার দ্বারা ইন-মেমরি পৃষ্ঠাগুলি দূষিত হয় where বাগগুলি ইত্যাদি উপরের পদ্ধতিগুলি ব্যবহার করে সনাক্ত করা যায় না এবং তাই CHECKDB ছবিতে আসে।

ডিবিসিসি চেকডিডিবি আরও বিশদ চেকগুলি সম্পাদন করে যার মধ্যে সম্ভাব্য দুর্নীতির জন্য পৃষ্ঠা শিরোনামগুলি অন্তর্ভুক্ত রয়েছে যা অন্য কোনও উপায়ে সনাক্তযোগ্য নয়।

কোন বিদ্যমান স্ক্রিপ্ট সেখানে আছে?

চাকাটি পুনরায় উদ্ভাবন করার পরিবর্তে, আমি আপনাকে ওলার এসকিউএল সার্ভার ইন্টিগ্রিটি চেক সমাধানটি একবার দেখার পরামর্শ দিচ্ছি

দক্ষতার সাথে চলছে ডিবিসিসি চেকডিবি:

CHECKDB চালু রাখতে বিশাল ডাটাবেস বা উচ্চ সংখ্যক ডাটাবেসযুক্ত রক্ষণাবেক্ষণের উইন্ডোতে আপনি যখন আঁটসাঁট হন তখন আপনার কেবল সৃজনশীল হওয়া দরকার।

এসকিউএলস্কিলস প্রশিক্ষণে অংশ নেওয়ার পরে, আমি আমার পরিবেশে যা প্রয়োগ করেছি তা হ'ল:

  • কোন টেবিলগুলি পরীক্ষা করার জন্য গুরুত্বপূর্ণ তা অগ্রাধিকার দিন।
  • টেবিলগুলি আলাদা আলাদা অগ্রাধিকার সহ গ্রুপগুলিতে আলাদা করুন এবং তারপরে দৌড়ের DBCC CHECKTABLEসাথে চলুন DBCC CHECKALLOCএবংDBCC CHECKCATALOG
  • একটি কর্মী সারণী তৈরি করুন যা সারণীর নাম অগ্রাধিকার সহ সঞ্চয় করবে। কেবলমাত্র নিশ্চিত হয়ে নিন যে সমস্ত উচ্চ অগ্রাধিকার সারণী (যা প্রচুর পরিমাণে বড়) অন্য কোনও গ্রুপে নেই অন্যথায় আপনার CHECKDB সম্পূর্ণ হবে না।
  • এমনকি আপনার কর্মী সারণীতে একটি সময়সীমা কলামও থাকতে পারে যা রক্ষণাবেক্ষণ উইন্ডোটি পাস করার পরে আপনার সিএইচসিডিডিবি মারা যাওয়ার পরে অর্কেস্টেট করবে
  • যোগ কতকাল এটি চালানোর জন্য টেবিল প্রতি নেন DBCC CHECKTABLE, DBCC CHECKALLOCএবং DBCC CHECKCATALOG। যাতে আপনার চেকগুলি চালানোর জন্য সাধারণত কতক্ষণ সময় লাগে তা আপনি অনুভব করতে পারেন।
  • আপনি এমনকি NOINDEXবিকল্পের সাথে চালাতে পারেন কারণ এটি ব্যবহারের টেবিলে অ-ক্লাস্টারযুক্ত সূচিগুলি পরীক্ষা করে না বলে এটি ক্রিয়াকলাপটিকে ত্বরান্বিত করবে। এটির কিছু সুবিধা রয়েছে কারণ কোনও ডেটা নষ্ট না হওয়ায় এটি ডেটা দুর্নীতি হিসাবে সমালোচনামূলক নয় এবং প্রয়োজনে আপনি সূচকটি ড্রপ এবং পুনরায় তৈরি করতে পারেন।

স্পষ্টতই, এন্টারপ্রাইজ সংস্করণটি ডিবিসিসির বিবৃতিগুলির সমান্তরাল সম্পাদনের সুবিধা নিতে পারে তবে MAXDOP সেটিংটি সন্ধান করবে কারণ এটি আপনার সমস্ত সিপিইউ গ্রহণ করতে পারে। এটি রিসোর্স গভর্নর দ্বারা কঠোরভাবে সীমাবদ্ধ হতে পারে।

দ্রষ্টব্য: আপনার যদি স্পারস কলাম থাকে তবে আপনার CHECKDB এখানে বর্ণিত হিসাবে ধীরে ধীরে মারা যাবে

অবশেষে, সমস্ত উপলব্ধ সরঞ্জাম সেট + ব্যবহার করে আপনার ডাটাবেস সার্ভার হার্ডওয়্যার সিস্টেমে আপনার বিশ্বাস এবং সবচেয়ে গুরুত্বপূর্ণভাবে আপনার ডেটার মানটি ব্যবহার করে কীভাবে ডাটাবেস দুর্নীতি রোধ করা যায় its

কিছু দুর্দান্ত রেফারেন্স:

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.