আমাদের একটি এসকিউএল 2000 ডিবি রয়েছে। রাইড অ্যারে ব্যর্থতার কারণে সার্ভার ক্র্যাশ হয়েছে। এখন যখন আমরা ডিবিসিসি চেকডিবি পরিচালনা করি, আমরা একটি ত্রুটি পেয়েছি যে 9 পৃষ্ঠায় 27 ধারাবাহিক ত্রুটি রয়েছে।
আমরা যখন এই পৃষ্ঠাগুলিতে ডিবিসিসি পৃষ্ঠা পরিচালনা করি তখন আমরা এটি পাই:
Msg 8939, Level 16, State 106, Line 1
Table error: Object ID 1397580017, index ID 2, page (1:8404521). Test (m_freeCnt == freeCnt) failed. Values are 2 and 19.
Msg 8939, Level 16, State 108, Line 1
Table error: Object ID 1397580017, index ID 2, page (1:8404521). Test (emptySlotCnt == 0) failed. Values are 1 and 0.
যেহেতু নির্দেশিত সূচকটি অ-ক্লাস্টারযুক্ত এবং একটি অনন্য প্রতিবন্ধ দ্বারা তৈরি করা হয়েছে যার মধ্যে 2 টি কলাম রয়েছে, তাই আমরা সূচকটি ছাড়ার এবং পুনরুদ্ধারের চেষ্টা করেছি। এটি নিম্নলিখিত ত্রুটির ফলস্বরূপ:
CREATE UNIQUE INDEX terminated because a duplicate key was found for index ID 2. Most significant primary key is '3280'.
The statement has been terminated.
তবে চলছে
Select var_id,result_on
from tests
group by var_id,result_on
having count(*)>1
0 টি সারি প্রদান করে।
আমরা যা করার পরিকল্পনা করছি তা এখানে:
- ডিবি-র একটি প্রাক-সার্ভার ক্র্যাশ অনুলিপি পুনরুদ্ধার করুন এবং ডিবিসিসি CHECKDB চালান
- যদি এটি পরিষ্কার ফিরে আসে, তবে পুনরুদ্ধার না করে আবার পুনরুদ্ধার করুন
- সমস্ত subecess TLOG ব্যাকআপ প্রয়োগ করুন
- প্রোডাকশন অ্যাপটি বন্ধ করুন, একটি লেজ লগ ব্যাকআপ নিন এবং এটিও প্রয়োগ করুন
- প্রোড ডিবি ফেলে দিন এবং নতুন করে পুনরুদ্ধার করা ডিবিটিকে নতুন করে তৈরি করার জন্য নতুন নাম দিন
- প্রোড অ্যাপ শুরু করুন
কেউ কি এই পদ্ধতির গর্তগুলি ঘুষি করতে পারেন? হতে পারে, একটি ভিন্ন পদ্ধতির পরামর্শ? আমাদের যা প্রয়োজন তা ন্যূনতম ডাউনটাইম।
এসকিউএল 2000 ডিবি আকার 94 গিগাবাইটের টেবিলটিতে দুর্নীতিগ্রস্ত পৃষ্ঠাগুলিতে 460 মিলিয়ন + সারি ডেটা রয়েছে
সাহায্যের জন্য ধন্যবাদ.
রাজ