ব্যাকআপ দুর্নীতি সনাক্ত করে, কিন্তু CHECKDB তা দেয় না


12

আমার একটি ডাটাবেস রয়েছে যেখানে আমি ব্যাকআপ কমান্ডটি চালিত করি

BACKUP DATABASE [MyDatabase] TO     
DISK =  'G:\Backup\MyDatabase_01_01_2018.bak'   
WITH    NOFORMAT, NOSKIP, COMPRESSION, INIT, BUFFERCOUNT = 100

আমি ত্রুটি বার্তা পেয়েছি

এমএসজি 3043, স্তর 16, রাজ্য 1, লাইন 8
ব্যাকআপ 'মাইডাটাবেস' ফাইল 'এফ: \ ডেটা \ মাই ডেটাবেস_1.ndf' ফাইলের পৃষ্ঠাতে (1: 745345) একটি ত্রুটি সনাক্ত করেছে।
এমএসজি 3013, স্তর 16, রাজ্য 1, লাইন 8
ব্যাকআপ ডেটাবেস অস্বাভাবিকভাবে শেষ করছে।

আমি একটি সম্পূর্ণ CHECKDB চালিয়েছিলাম তবে এটি পরিষ্কার ফিরে আসে। আমি লক্ষ্য করেছি যে পৃষ্ঠা যাচাইকরণ বিকল্পটি কোনটিতে সেট করা হয়েছে (আমার কাজটি নয়) তাই আমি এটিকে চেকসুমে পরিবর্তন করেছি এবং এটি ডিবিতে সমস্ত সূচি পুনরায় তৈরি করে এটি সমস্ত পৃষ্ঠায় লেখার জন্য এবং চেকসাম তৈরি করার জন্য। এর পরেও ব্যাকআপটি ব্যর্থ হয় এবং চেকডবি এখনও পরিষ্কার দেখায় (যাতে কোনও পরিবর্তন হয় না)।

DBCC CHECKDB('MyDatabase') WITH NO_INFOMSGS, ALL_ERRORMSGS,
DATA_PURITY, EXTENDED_LOGICAL_CHECKS;

এসকিউএল লগ থেকে:

ডিএলসিসি চেকডডিবি (মাইডাটাবেসস) অ্যালআরআরার্মসস, নো_ইনফমসস, এক্সএক্সএক্স দ্বারা নির্বাহিত ডেটা_পুরিটি 0 টি ত্রুটি খুঁজে পেয়েছে এবং 0 টি ত্রুটি মেরামত করেছে। অতিবাহিত সময়: 0 ঘন্টা 21 মিনিট 46 সেকেন্ড। অভ্যন্তরীণ ডাটাবেস স্ন্যাপশটের বিভাজন পয়েন্ট LSN = 000ab776: 0000112f: 0001 এবং প্রথম এলএসএন = 000ab776: 0000112 ডি: 0001 রয়েছে।

আমি ডিবিসিসি পৃষ্ঠায় দৌড়েছি তবে এটির ত্রুটি (এমনকি প্রথম পৃষ্ঠায় সঠিক পৃষ্ঠাটি ফিরে আসবে বলে মনে হয় না)। আমি এটি মুদ্রণ বিকল্প 2 দিয়ে চালাতে পারি এবং এটি ফিরে আসে তবে সত্যই আমি জানি না যে আমি সেখানে কী খুঁজছি।

DBCC PAGE ('MyDatabase',1,745345,3)
পৃষ্ঠা: (3: 513793)

বাফার:


BUF @ 0x00000003811F8280

bpage = 0x00000000F2D70000 bhash = 0x0000000000000000 বপেজেনো = (1: 745345)
বিডিবিড = 5 টি বিভাজন = 0 বিসিপুটিক্স = 0
bsampleCount = 0 bUse1 = 44283 bstat = 0x809
ব্লগ = 0x5adb215a বনেস্ট = 0x0000000000000000          

পেজের উপরের অংশ:


পৃষ্ঠা @ 0x00000000F2D70000

মি_পেজ আইডি = (3: 513793) এম_হেডার ভার্সন = 1 মি_ টাইপ = 2
m_typeFlagBits = 0x4 m_level = 0 m_flagBits = 0x0
m_objId (AllocUnitId.idObj) = 1075937538 m_indexId (AllocUnitId.idInd) = 2
মেটাডেটা: অলোকউনিটআইডি = 633462595911680 মেটাডেটা: পার্টিশনআইডি = 0
মেটাডেটা: ইনডেক্সআইডি = -1 মেটাডেটা: অবজেক্টআইডি = 0 মি_প্রিভ পেজ = (3: 513795)
m_nextPage = (3: 513820) plenlen = 17 m_slotCnt = 426
m_freeCnt = 2 মি_ফ্রিডাটা = 7338 মি_রিজারড সিএনটি = 0
m_lsn = (608841: 643611: 411) এম_এক্স্যাক্ট সংরক্ষিত = 0 এম_এক্সডিড আইডি = (0: 0)
m_ghostRecCnt = 0 m_tornBits = 0 ডিবি ফ্রেগ আইডি = 1

বরাদ্দ স্থিতি

গ্যাম (1: 511232) = অ্যালকোটেড এসজিএএম (1: 511233) = আবদ্ধ নয়     
পিএফএস (1: 744096) = 0x40 সীমাবদ্ধ 0_PCT_FULL DIFF (1: 511238) = পরিবর্তন হয়নি
এমএল (1: 511239) = এমএলএলএজিজেড নয়      

এমএসজি 2514, স্তর 16, রাজ্য 8, লাইন 20
একটি ডিবিসিসি পৃষ্ঠার ত্রুটি ঘটেছে: অবৈধ পৃষ্ঠা মেটাডেটা - ডাম্প স্টাইল 3 সম্ভব নয়।

আমি কি পরে চেষ্টা করতে পারে কোন ধারণা? সার্ভার সংস্করণ হয়

select @@version
মাইক্রোসফ্ট এসকিউএল সার্ভার 2014 (এসপি 2-সিইউ 11) (KB4077063) - 12.0.5579.0 (এক্স 64) 
    ফেব্রুয়ারী 21 2018 12:19:47 | 
    কপিরাইট (গ) মাইক্রোসফ্ট কর্পোরেশন
    উইন্ডোজ এনটি 6.3 এ বিকাশকারী সংস্করণ (-৪-বিট) (বিল্ড 00৯০০:) (হাইপারভাইজার)

ডিবিটির সামঞ্জস্যতা স্তরটি 100 (এসকিউএল 2008)।


এই প্রশ্নের মন্তব্যগুলিতে চ্যাটে সরানো হয়েছে
পল হোয়াইট 9

উত্তর:


9

এই উত্তরটি পল র্যান্ডাল দ্বারা রচিত এসকিউএলস্কিলস ডটকম নিউজলেটারের একটি ইস্যু থেকে নেওয়া হয়েছে, "এমন একটি ডাটাবেস যা পৃষ্ঠার চেকসাম ত্রুটির সাথে ব্যাকআপ ব্যর্থ হবে, তবে পাস করেছে DBCC CHECKDB"।

কেবলমাত্র এটি ঘটতে পারে যখন কোনও পরিমাণ একটি মিশ্র মাত্রা হয় (যেখানে সীমাতে 8 পৃষ্ঠাগুলি সম্ভাব্য 8 টি বিভিন্ন বরাদ্দ ইউনিটে বরাদ্দ করা যায় - এখানে দেখুন ) এবং কিছু পৃষ্ঠা ভুলভাবে সম্পর্কিত পিএফএস পৃষ্ঠা দ্বারা বরাদ্দ হিসাবে চিহ্নিত করা হয়।

যখন এটি ঘটে তখন DBCC CHECKDBসেই পৃষ্ঠাগুলি পড়ার চেষ্টা করবেন না, কারণ এটি বরাদ্দ ইউনিটের আইএএম পৃষ্ঠাগুলি থেকে কোন পৃষ্ঠাগুলি পড়তে হবে (যেটির প্রথমটি একটি মিশ্র পরিমাণ থেকে বরাদ্দ করা পৃষ্ঠাগুলি তালিকাভুক্ত করে)। এই মামলাটি DBCC CHECKDBদুর্নীতি সনাক্তকরণ যুক্তিযুক্ত একটি ফাঁক ।

[কারণ] DBCC CHECKDBদুর্নীতি সনাক্ত করতে পারেনি, সেগুলি ঠিক করার জন্য প্রয়োজনীয় মেরামত করা তার পক্ষে সম্ভব ছিল না। সুতরাং ব্যবহার করে DBCC WRITEPAGE, আমি ভুলভাবে বরাদ্দকৃত পৃষ্ঠাগুলির জন্য সরাসরি পিএফএস পৃষ্ঠায় বরাদ্দ স্থিতিতে প্রয়োজনীয় পরিবর্তনগুলি কাজ করেছি এবং এটি কার্যকর হয়েছে!

এটি একটি অত্যন্ত বিরল ঘটনা - এটি অনেক বেশি সাধারণ যে DBCC CHECKDB ব্যর্থ হয় তবে ব্যাকআপ সফল হয়।

আমার মতে, পলের রেজোলিউশনটি আপনার মতো ডেটা রফতানি এবং আমদানির বাইরে এবং তার বাইরে, সুতরাং আমি মনে করি আপনি সঠিক কাজটি করেছেন।

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