আমার জন্য অনেকগুলি গৌণ ডেটা ফাইল (.ndf) তৈরি করা হয়েছে tempdb
। অতিরিক্ত ফাইলগুলি সরাতে, আমাকে ফাইলটি খালি করতে হবে (সামগ্রী অন্য ফাইলগুলিতে সরানো হবে):
DBCC SHRINKFILE('tempdbfile8', EMPTYFILE);
এবং তারপরে ফাইলটি মুছুন:
ALTER DATABASE tempdb REMOVE FILE tempdbfile8;
কিন্তু EMPTYFILE
কমান্ড ত্রুটি ফেরৎ:
DBCC SHRINKFILE: Page 8:41920 could not be moved because it is a work table page.
Msg 2555, Level 16, State 1, Line 2
Cannot move all contents of file "tempdbfile8" to other places to complete the emptyfile operation.
উদ্বেগের দরকার নেই, আমাকে কেবল এই পৃষ্ঠাটি ব্যবহার করে যা কিছু সম্পর্কে এটি ব্যবহার করছে তা আবিষ্কার করতে হবে:
DBCC TRACEON (3604)
DBCC PAGE(2,8,41920) --dbid=2, fileid=8, pageid=41920
কমান্ডটি তাদের মধ্যে অবজেক্ট_আইডি প্রচুর তথ্য দেয়। কিন্তু:
Metadata: ObjectId = 0
এটি সম্পর্কে কী করতে হবে তা আমার কোনও ধারণা নেই। কোন পৃষ্ঠাটি এই পৃষ্ঠাটি স্থানান্তরিত হতে বাধা দিচ্ছে? কীভাবে সেই অবজেক্ট, প্রক্রিয়া, সেশন বা এটি যাই হোক না কেন আবিষ্কার করবেন? যে কোনও সাহায্যের প্রশংসা করা হবে, তবে দয়া করে মনে রাখবেন যে সবকিছু যেমন হয় তেমন ফেলে রাখা বা পরিবর্তে অন্য ফাইল অপসারণ করা এই সমস্যার বৈধ সমাধান নয়;)।
সম্পাদনা করুন:
আমি ফাইলগুলি অপসারণ করছি, কারণ আমরা প্রসেসর কোর প্রতি একই ফাইল তৈরি করার "সেরা অনুশীলন" অনুসরণ করতাম (একই প্রাথমিক আকার, একই বৃদ্ধির হার)। তবে যতদূর আমি জানি, যতক্ষণ না আপনি বিতর্কিত সমস্যার মধ্যে চলে যান, ততক্ষণ একই ডিভাইসে অতিরিক্ত টেম্পিডবি ফাইল তৈরি করার কোনও মানে নেই। আমাদের ক্ষেত্রে এটি বোধগম্য হয়, কারণ আমাদের এমপিআইও চালু আছে এবং স্টোরেজ ডিভাইস 4 টি পথ পরিচালনা করতে পারে। তবে একটি ত্রুটি হয়েছিল এবং আমরা 6 টি কোর সিপিইউ সহ মোট 5 টি ফাইল দিয়ে শেষ করেছি। এটি এমপিআইও পাথের চেয়ে বেশি, সিপিইউ কোরের চেয়ে কম এবং এটি কোনও সংখ্যারও নয়। এটি কোনও সমস্যা নাও করতে পারে তবে ঠিক মনে হয় না :)।
পরিশেষে আমি একক ব্যবহারকারী মোডে (তাত্ক্ষণিক রোলব্যাক) ডেটা ডাটাবেসগুলি (যে আমার সমস্যার কারণ হওয়ার আশঙ্কা হয়েছিল) সেট করে সার্ভার পুনরায় চালু না করে ফাইলটি খালি করতে এবং মুছে ফেলতে সক্ষম হয়েছি। এটি কাজ করেছে, তবে আমি ভাগ্যবান হয়েছি। আমি সত্যিই যা চাই তা হ'ল পৃষ্ঠাটি সর্বদা ট্র্যাক করতে সক্ষম হ'ল :)।
dbcc page ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])
আপনার সমাধান সম্পর্কে: এটি কার্যকর হবে, তবে আমি উদাহরণটি নীচে না আনাই সত্যিই এটি করতে চাই।