গৌণ ডেটা ফাইলগুলি সরানো হচ্ছে। ডিবিসিসি শ্রিনকফিল: পৃষ্ঠাটি সরানো যায়নি কারণ এটি একটি কাজের টেবিল পৃষ্ঠা


10

আমার জন্য অনেকগুলি গৌণ ডেটা ফাইল (.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 টি ফাইল দিয়ে শেষ করেছি। এটি এমপিআইও পাথের চেয়ে বেশি, সিপিইউ কোরের চেয়ে কম এবং এটি কোনও সংখ্যারও নয়। এটি কোনও সমস্যা নাও করতে পারে তবে ঠিক মনে হয় না :)।

পরিশেষে আমি একক ব্যবহারকারী মোডে (তাত্ক্ষণিক রোলব্যাক) ডেটা ডাটাবেসগুলি (যে আমার সমস্যার কারণ হওয়ার আশঙ্কা হয়েছিল) সেট করে সার্ভার পুনরায় চালু না করে ফাইলটি খালি করতে এবং মুছে ফেলতে সক্ষম হয়েছি। এটি কাজ করেছে, তবে আমি ভাগ্যবান হয়েছি। আমি সত্যিই যা চাই তা হ'ল পৃষ্ঠাটি সর্বদা ট্র্যাক করতে সক্ষম হ'ল :)।


ডিবিসিসি পৃষ্ঠার কমান্ডটি সঠিক নয় এটি ডিবিসিসি পৃষ্ঠার মতো হওয়া উচিত (2,41920,1)। 1,2,3 নির্ভর করে আপনি আউটপুটটিতে কী চান।
শান্ত

যদি উপরের কাজ না করে তবে আপনাকে ফাইলগুলি সরিয়ে এবং তারপরে এসকিএল সার্ভার পুনরায় চালু করে হার্ডওয়্যারে এটি করতে হবে যাতে এটি কেবল মুছে ফেলা হয়নি এমন ফাইলগুলি ব্যবহার করতে পারে। আপনি কি এই লিঙ্কটি উল্লেখ করতে পারেন daveturpin.com/2011/07/how-to-DP-a-tempdb-database-file
শ্যাঙ্কি

2
@ শ্যাঙ্কি কমান্ডটি সঠিক। 0..3 4 র্থ প্যারামিটার হিসাবে পাস করা যেতে পারে: dbcc page ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])আপনার সমাধান সম্পর্কে: এটি কার্যকর হবে, তবে আমি উদাহরণটি নীচে না আনাই সত্যিই এটি করতে চাই।
অ্যাডাম লুনিউস্কি

ঠিক আছে .. আমি আপনাকে ডিবিসিসি পৃষ্ঠার আরও সাধারণ ফর্মটি বলছিলাম। অনুগ্রহ করে নোট হ'ল অননুমোদিত কমান্ড। আপনি পোস্ট করা লিঙ্কটি কি চেক করেছেন
শানকি

1
আমি উদাহরণটি পুনরায় আরম্ভ না করেই এই সমস্যাটি সমাধান করা সম্ভব বলে মনে করি না। স্পষ্টতই আপনি এই ওয়ার্কটেবলটি কী তা অনুসন্ধান করার চেষ্টা করেছেন (যার মালিক এটি নির্ধারণে সহায়তা করবে) এবং এটি ব্যর্থ হয়েছে। হিটটি নিন বা আপনি পুনরায় আরম্ভ না করা পর্যন্ত অতিরিক্ত ফাইলগুলি নিয়ে লাইভ করুন।
অ্যারন বারট্র্যান্ড

উত্তর:


5

সার্ভারটি পুনরায় আরম্ভ করা যথেষ্ট হওয়া উচিত - সেই ওয়ার্ক টেবিলগুলি সাফ হওয়া উচিত। তবে আপনি সম্ভবত সেই ফাইলগুলি সরিয়ে নেওয়ার আগে অন্যান্য প্রক্রিয়াগুলি ওয়ার্কটবেবলগুলি তৈরি হতে আটকাতে আমি সম্ভবত এটি একক ব্যবহারকারী মোডে (-ম) শুরু করব । তারপরে প্রয়োজনীয় ফাইলগুলির নতুন সংজ্ঞা দিন tempdb; সম্ভবত অপ্রয়োজনীয় ফাইলগুলি মুছে ফেলা, আকার পরিবর্তন করা ইত্যাদি You আপনারও নিশ্চিত হওয়া উচিত যে আপনার একাধিক ফাইল রয়েছে, সেগুলি সব একই আকারে সেট হয়ে গেছে এবং তাদের সকলের একই অটোগ্রোথ সেটিংস রয়েছে (এমবিতে,% নয়)। এবং টিএফ 1117 এবং টিএফ 1118 পাশাপাশি বিবেচনা করা ভাল সময় হতে পারে ( সূচনা পয়েন্ট )।

আমি আবার এসকিউএল সার্ভার শুরু করার আগে কেবল ফাইল সিস্টেম থেকে ফাইলগুলি মুছে ফেলার পরামর্শ সম্পর্কে খুব সতর্ক থাকব - এটি সম্ভবত শুরু হয় না।

(যদিও আসল সমস্যাটি কী তা সম্পর্কে আমি কৌতূহলী হয়ে উঠব। অনেক বেশি ফাইল থাকা আপনাকে সত্যই ক্ষতি করে না))


অ্যারন অবশ্যই আপনাকে এটিকে অপসারণ সম্পর্কে সতর্ক থাকতে হবে তবে এটি অবশ্যই নথিভুক্ত করা হয়েছে msdn.microsoft.com/en-gb/library/ms175574.aspx । এটি চেষ্টা করে এসেছেন এবং এসকিউএল সার্ভার টেম্পডিবি অনলাইন হয়।
শ্যাঙ্কি

5
@ শ্যাঙ্কি আমি একবারে 138 মাইল একবার গাড়ি চালানোর চেষ্টা করেছি, কিন্তু আমি টানতে পারিনি। তার মানে কি আমার করা চালিয়ে যাওয়া উচিত, এবং এর কোনও সুযোগ নেই যে আমি কালকে টেনে নিয়ে যাব? ঝুঁকিপূর্ণ উপায় প্রস্তাব দেওয়ার আগে প্রথমে যথাযথ উপায়ে চেষ্টা করা আরও নিরাপদ । এই প্রোগ্রামটিতে। বিশেষত যেহেতু তিনি এখন ফাইলটি খালি করতে পারবেন না - আপনি কী ভাবেন যে ওয়ার্কটেবলের ত্রুটি বার্তাটি অভিযোগ করছে তা ছাড়া এর মধ্যে অন্য কিছু রয়েছে? ত্রুটিটি সমস্ত বস্তুর একটি সম্পূর্ণ তালিকা তৈরি করে না, এটি কেবল প্রথম অবজেক্টকে আউটপুট করে ।
অ্যারন বারট্র্যান্ড

এখানে এমন কিছু আছে যা প্রকৃতপক্ষে টেম্পডিবি ব্যবহার করছে তাই এটি এটি অনুমান করা শক্ত ফাইল খালি করার অনুমতি দিচ্ছে না। তিনি সারণি অপারেটরটি ব্যবহার করতে পারেন এমন কিছু ক্যোয়ারী যা এখনও টেম্পিডবি দরকার। ডিএমভি sys.dm_db_task_space_usage sys.dm_db_session_space_usage sys.dm_db_file_space_usage সন্ধানে সহায়তা করতে পারে
শ্যাঙ্কি

পুনরায় চালু করার বিকল্প এখানে রয়েছে তবে তিনি ফাইলটি খালি না করে এবং টেম্পডিবি ফাইল ফেলে দেওয়ার চেষ্টা করলেও এটি বলবে যে টেম্পিডবি ফাইল বাদ দেওয়া যাবে না তবে একই সাথে সিস্টেম ক্যাটালগ আপডেট করা হয় এবং পুনরায় চালু করার পরে ফাইলটি চলে যাবে। এটিই আমি টেম্পডিবির সাথে ডিফল্ট আচরণ অনুমান করি তাই আমি প্রস্তাব দিয়েছি এবং এখনও মনে করি ডেটা ফাইলটি ব্যবহার করা হলেও এটি অপসারণ কাজ করবে। আমার দ্বিতীয় মন্তব্যে পোস্ট করা লিঙ্কটিতেও এটি একই।
শ্যাঙ্কি

1
@ শঙ্কি এই ডিএমভিগুলি এমন সব ধরণের জিনিসের জন্য হাজার হাজার সারি ফেরত দিতে পারে যা প্রশ্নযুক্ত ফাইলটির সাথে কিছুই করার নেই - তাই আপনি কীভাবে এটি সঙ্কুচিত করার পরিকল্পনা করছেন? এছাড়াও আপনার পদ্ধতির সাহায্যে আপনাকে আবারও পুনরায় চালু করতে হবে, তবে কেন কেবল প্রথমে সরলতম উপায়ে চেষ্টা করবেন না? আমি কেবল আপনার সাথে একমত নই যে "হার্ড ওয়ে" প্রথম পরামর্শ হওয়া উচিত, দুঃখিত।
অ্যারন বারট্র্যান্ড

2

https://social.msdn.microsoft.com/Forums/en-US/2a00c314-f35e-4900-babb-f42dcde1944b/dbcc-shrinkfile-page-411283400-could-not-be-moved-because-it-is- একটি কাজ-টেবিল পৃষ্ঠার? ফোরাম = sqldatabaseengine

এমএসডিএন ফোরামে মাইক দ্বারা প্রস্তাবিত হিসাবে, কাজের টেবিলগুলি বেশিরভাগ পরিকল্পনার ক্যাশে সম্পর্কিত। এগুলি সাফ করার ফলে কাজের টেবিলটিও মুছে ফেলা হবে এবং তারপরে আপনি টেম্পডিবি সঙ্কুচিত করতে পারেন। এটি আমার পক্ষে কাজ করেছে। এবং এটি আপনাকে সার্ভার পুনরায় আরম্ভ করার পাশাপাশি সংরক্ষণ করে। এসকিউএল সার্ভারকে আবার কার্যকর করার পরিকল্পনাগুলি পুনরায় তৈরি করতে হবে বলে কিছু ওভারহেড থাকবে।

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