আমার কি সত্যিই .LDF ফাইলগুলি রাখা দরকার?


9

প্রতি মাসে আমরা আমাদের প্রোডাকশন ডেটাবেজের মাসের স্ন্যাপশট শেষ করি। এই মাসের শেষের স্ন্যাপশটগুলি কঠোরভাবে প্রতিবেদনের উদ্দেশ্যে, সেখানে কোনও সন্নিবেশ, আপডেট বা মুছে ফেলা হয় না। এই প্রতিটি স্ন্যাপশটের একটি .MDFএবং .LDFফাইল রয়েছে।

আমি .LDFফাইলগুলি মুছতে এবং সার্ভারে কিছু জায়গা খালি করতে চাই। আমার কাছে .LDFফাইলগুলি রাখার কি কোনও কারণ আছে ?

ব্যাখ্যা:

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

রাতের প্রক্রিয়াকরণ:
আমি যা বলতে পারি তা থেকে ...
প্রতিটি রাতেই ডেটাবস টেবিলগুলি কেটে ফেলা হয় টেবিলগুলি বल्क
সন্নিবেশ বিবৃতিগুলির একটি সিরিজের মাধ্যমে পপুলেটেড হয়
সূচিগুলি পুনরায় তৈরি করা হয়

উত্তর:


16

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

স্থানটি গ্রহণ করুন এবং আপনার লগ ফাইলগুলি মুছবেন না । আপনি এটির সাথে ঝামেলা চাইছেন।

লেনদেন লগগুলিতে এই নিবন্ধটি দেখুন , বিশেষত "লগ অব্যবস্থাপনা" অংশটি।


9

অন্য উত্তরে উল্লিখিত হিসাবে , আপনি লগ ফাইলটি মুছতে পারবেন না। আপনি যা করতে পারতেন তা ডেটাবেস সেট করে READ_ONLY। ইন ডাটাবেস সহ READ_ONLY, কোনও পরিবর্তন অনুমোদিত নয় এবং লগ ফাইল বৃদ্ধি পাবে না। আপনি লগ ফাইলের আকারকে ন্যূনতম আকারে হ্রাস করতে পারেন এবং আপনার ন্যূনতম পদক্ষেপের লক্ষ্য অর্জন করতে পারেন। READ_ONLYনিম্নলিখিত কমান্ডটি চালিয়ে ডাটাবেস সেট করতে :

USE master;
GO
ALTER DATABASE databasename SET READ_ONLY;
GO

আপনি ডাটাবেসটিকে আবার পরিবর্তন করতে পারেন READ_WRITE, প্রয়োজনীয় যে কোনও পরিবর্তন করতে পারেন, তারপরে READ_ONLYআপনার যে কোনও সময় সেট করতে পারেন।

লগ ফাইল এখনও ডাটাবেসের এসিডি বৈশিষ্ট্য বজায় রাখতে প্রয়োজন।


2

আসল বিষয়টি হল যে আপনি এমডিএফ ফাইলটি ব্যবহার করে একটি ডেটাবেস তৈরি করতে পারেন। এটি sp_attach_single_file_db (লেনদেন-এসকিউএল) কমান্ড। নোট করুন যে এটি মাইক্রোসফ্ট এসকিউএল সার্ভারের ভবিষ্যতের সংস্করণে সরানো হবে। তবে, আপনার এলডিএফ ফাইলগুলি মুছে ফেলা স্মার্ট নয়। হাঙ্গর ঠিক আছে 'আপনি এর সাথে ঝামেলা চাইছেন।' আরেকটি দৃষ্টিকোণ - আপনার এলডিএফ ফাইলগুলি কি বিশাল? যদি সেগুলি হয় তবে আপনি সেগুলি সম্পর্কে কিছু করতে পারেন।

  1. সাধারণ পুনরুদ্ধারের মডেলটিতে আপনার ডাটাবেস সেট করুন । আপনি যদি লেনদেনগুলি ব্যাক করতে চান না তবে আপনি এটি করতে পারেন
  2. এমডিএফ এবং এলডিএফ ফাইলগুলি তৈরির পরিবর্তে একটি সম্পূর্ণ ডাটাবেস ব্যাকআপ (.BAK) ফাইল তৈরি করুন। এটি আরও ছোট tnan MDF + LDF হবে

-3

এলডিএফ ফাইলগুলি সঙ্কুচিত করার জন্য আমি এখানে এসেছি এমন সমাধান।

  1. ডেটাবেস বিচ্ছিন্ন করুন
  2. * _Old.ldf এ LDF ফাইলটির নাম পরিবর্তন করুন
  3. ডাটাবেস সংযুক্ত করুন
  4. নিখোঁজ এলডিএফের রেফারেন্সটি সরান

এটি 504K আকারের একটি এলডিএফ ফাইল পুনরায় তৈরি করে।

  1. * _Old.ldf মুছুন
  2. রিসাইকেল বিন খালি

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

আপডেট 2019-09-24: হ্যাঁ, আমি সম্মতি জানাই এটি সত্যিই খারাপ ধারণা। আমি প্রায় সাথে সাথে এটি করা বন্ধ করে দিয়েছি। আমি 100 এর ফিল ফ্যাক্টরটি ব্যবহার করে সমস্ত সূচকগুলি পুনরায় তৈরি করেছি only কেবলমাত্র .ldf ফাইল সঙ্কুচিত করুন। এবং সমস্ত ডাটাবেস কেবলমাত্র পড়তে পরিবর্তন করা হয়েছে।


6
বাহ, এটি সত্যিই খারাপ ধারণা। ডাটাবেস যদি সফলভাবে বিচ্ছিন্ন না হয়, বা 1 এবং 3 এর মধ্যে কোথাও হারিয়ে গেছে বা দূষিত হয়? আপনি মাতাল. আপনার কাছে আপনার ডাটাবেসের জেরো কপি রয়েছে।
অ্যারন বারট্রান্ড

3
এটি করার যথাযথ উপায়টি হ'ল: ১. ডাটাবেসের একটি সিপিওয়াইপথলি ব্যাকআপ নিন। 2. এটি রিপোর্টিং সার্ভারে পুনরুদ্ধার করুন। ৩. পুনরুদ্ধারটিকে সরল করুন এবং পুনরুদ্ধারকৃত অনুলিপিটি কেবল পঠনযোগ্য হিসাবে চিহ্নিত করুন। 4. লগ ফাইলটি ম্যানুয়ালি সঙ্কুচিত করুন। হ্যাঁ এর মধ্যে আপনার প্রয়োজন স্থান, তবে আপনি আপনার কাজ চালিয়ে যাবেন!
অ্যারন বারট্রান্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.