কীভাবে একটি এসকিউএল সার্ভার লগ ফাইল সঙ্কুচিত করা কার্য সম্পাদনকে প্রভাবিত করে?


19

আমার কাছে একটি এসকিউএল সার্ভার ২০০ database ডাটাবেস রয়েছে যার আকারে 2 জিবি আকারের ডেটা ফাইল রয়েছে তবে লগ ফাইলটি 8 গিগাবাইটের বেশি। ২০০৮-এর পূর্বের ডাটাবেসগুলির সাথে আমি 'ব্যাকআপ লগ' এবং TRUNCATE_ONLYবিকল্পটি ব্যবহার করতে পারতাম তবে এটি ২০০৮ এবং পরবর্তী ডেটাবেসগুলির সাথে আর উপলভ্য নয়।

আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা লগ ফাইলটি ছিন্ন করে:

USE [MyDatabase]
GO
ALTER DATABASE [MyDatabase] SET RECOVERY SIMPLE WITH NO_WAIT
DBCC shrinkfile('MyDatabase_log', 1)
ALTER DATABASE [MyDatabase] SET RECOVERY FULL WITH NO_WAIT
GO

এটি লগ ফাইলটিকে পুরোপুরি ছাঁটাই করে, তবে আমার প্রশ্ন: এটি কি কার্য সম্পাদনকে প্রভাবিত করে?

আমি প্রতিদিন দুটি সম্পূর্ণ ব্যাকআপ করি তাই লগটি যতক্ষণ না তথ্য রোল-ফরোয়ার্ডের সাথে সম্পর্কিত হয় তেমন প্রয়োজন হওয়া উচিত।

উত্তর:


26

আমি সত্যিই পল এস রান্ডাল দ্বারা সঠিক লেনদেন লগ আকার পরিচালনার গুরুত্ব পড়ার প্রস্তাব দিই ।

পঞ্চম কথাটি হ'ল লেনদেনের লগ হ্যান্ডলিংয়ের জন্য দুটি মাত্র ভাল উপায় রয়েছে :

  1. হয় নিয়মিত এলওজি ফাইল ব্যাকআপ নিয়ে যান এবং এলওজি-ফাইল প্রতিটি এলওজি ব্যাকআপের পরে স্থানটি পুনরায় ব্যবহার করবে এবং অনির্দিষ্টকালের জন্য বৃদ্ধি পাবে না, বা

  2. সিম্পল পুনরুদ্ধার মডেলটি ব্যবহার করুন এবং আপনি নিয়মিত পুরো ব্যাকআপগুলি নেওয়ার সাথে সাথে আপনার লগ-ফাইলের আকার সম্পর্কে কোনও চিন্তা করার দরকার নেই।

এলওজি-ফাইলের কাটা এবং কর্মক্ষমতা নিয়ে উদ্বেগের বিষয়টি হ'ল এলওজি ফাইলটি বাড়ানোর সময় আপনি সর্বদা একটি পারফরম্যান্স হিট হবেন (উপরের লিঙ্কযুক্ত ব্লগ পোস্টের একটি উদ্ধৃতি):

আপনি যদি লগটি সঙ্কুচিত করেন, তবে এটি আবার বাড়তে চলেছে - সম্ভবত ভিএলএফ বিভাজন ঘটায় এবং লগটি তাত্ক্ষণিক প্রারম্ভিক ব্যবহার করতে না পারায় অবশ্যই আপনার কাজের চাপ বিরতি দেয় ...

আপডেট: ডেটা ফাইল সঙ্কুচিত হওয়ার জন্য LOG ফাইল ছাঁটাই ভুল করবেন না। ডেটা ফাইল সঙ্কুচিত করা সত্যিই খারাপ। দেখুন কেন আপনি আপনার ডেটা ফাইলগুলির সঙ্কুচিত করা উচিত নয় বিস্তারিত জানার জন্য।


আপনার ডেটা ফাইলগুলি সঙ্কুচিত করা উচিত নয় কেন তার URL বদলে গেছে। sqlskills.com/blogs/paul/…
রিপভ্লান

যথাযথ লেনদেনের লগ আকার পরিচালনার গুরুত্বের URL হিসাবে রয়েছে: sqlskills.com/blogs/paul/…
রিপভ্লান

6

ঠিক আছে, হ্যাঁ, কোনও সমস্যা হলে আপনি যদি পুনরুদ্ধার করতে চান তবে প্রতিদিনের পূর্ণ ব্যাকআপগুলি সহ লগটি প্রয়োজনীয়। আমরা আমাদের লেনদেনলগ প্রতি 15 মিনিটে ব্যাকআপ করি। সমস্যাটি হ'ল আপনি নিজের লেনদেনের লগটিকে ব্যাক আপ করছেন না এবং এ কারণেই লগটি এত আক্রোশের সাথে বেড়ে যায়। আপনি যদি সঠিক লেনদেনলগ ব্যাকআপগুলি করেন তবে আপনার কোনও লেনদেন লগ সঙ্কুচিত করার দরকার নেই।

লগটি ছাঁটাই করার আগে আপনাকে ডাটাবেসটির ব্যাকআপ নিতে হবে। আমি অফ ঘন্টা এ এটি করার পরামর্শ দিচ্ছি যাতে ব্যাকআপ এবং কাটা অংশের মধ্যে কোনও নতুন ডেটা .োকানো হয় না। তারপরে যথাযথ লেনদেন লগ ব্যাকআপ সেট আপ করুন যাতে আপনার আর কখনও সমস্যা না হয়।

পারফরম্যান্সকে প্রভাবিত করার মতো, আপনার সিস্টেমের হার্ডওয়্যার এবং ব্যবহারের বিশদটি না জেনেও, এটি বলা শক্ত হবে।


4

লেনদেন লগ কত দ্রুত বৃদ্ধি পায়? এটি যদি দ্রুততর হয় তবে আপনি এটিকে কমিয়ে কিছুতেই সঙ্কুচিত করে কার্য সম্পাদনকে প্রভাবিত করবেন, কারণ এটির পিছনে পিছনে সময় ব্যয় করতে হবে। এর অর্থ এই নয় যে আপনার সময়ে সময়ে এটি সঙ্কুচিত হওয়া উচিত নয়, তবে আপনাকে কেবল সর্বনিম্নে সঙ্কুচিত না হয়ে আকারের সমস্যাটি সম্পর্কে ভাবতে হবে। পারফ কি বিশাল আঘাত হানে? সম্ভবত না, তবে এটি সার্ভারে লোড (লেনদেনের সংখ্যা ইত্যাদি) এর উপর নির্ভর করে।

আমার যে সমস্যাটি সমস্যাযুক্ত তা হ'ল "আমি প্রতিদিন 2 টি সম্পূর্ণ ব্যাকআপ নিই so আপনার সম্পূর্ণ ব্যাকআপগুলির মধ্যে পয়েন্টগুলির জন্য লগ অত্যন্ত গুরুত্বপূর্ণ। এমনকি দিনে দু'বার দুর্যোগ পুনরুদ্ধারের জন্য লগ ফাইলের প্রয়োজনীয়তা সরিয়ে দেয় না, যদি না এটি কেবল পঠনযোগ্য একটি ডাটাবেস থাকে (যদি তা হয় তবে আপনি লগ ফাইলটিতে বিশাল বৃদ্ধি দেখতে পাবেন না)।


এই আকারটি পেতে লগটি প্রায় 4-6 মাস সময় নেয়, সুতরাং এটি খুব দ্রুত নয়। আমি ভেবেছিলাম (সম্ভবত ভুলভাবে) যে লগ ফাইলটি পুরো ব্যাকআপগুলির মধ্যে লেনদেন করে, তাই আমি উল্লেখ করেছি যে আমি দিনে 2 টি সম্পূর্ণ ব্যাকআপ করি তাই এর মধ্যে লগের বিষয়বস্তু খুব দুর্দান্ত হতে পারে না। আমি যেমন বলেছি, আমি লগ ফাইল ধারণাটি ভুল বুঝেছি।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.