কখন আমার পূর্ণ পুনরুদ্ধার মডেল ব্যবহার করা উচিত এবং কখন ডেটাবেসগুলির জন্য সহজ পুনরুদ্ধার মডেলটি ব্যবহার করা উচিত?
আপনার ডাটাবেসের পয়েন্ট-ইন-টাইম পুনরুদ্ধারের প্রয়োজন হলে আপনার পুরো পুনরুদ্ধার মডেলটি ব্যবহার করা উচিত। আপনার যখন আপনার ডাটাবেসের পয়েন্ট-ইন-টাইম পুনরুদ্ধারের প্রয়োজন না হয় এবং যখন শেষ অথবা সম্পূর্ণ ডিফারেনশিয়াল ব্যাকআপ পুনরুদ্ধারের পয়েন্ট হিসাবে যথেষ্ট তখন আপনার সহজ পুনরুদ্ধার মডেলটি ব্যবহার করা উচিত। (দ্রষ্টব্য: আরও একটি পুনরুদ্ধার মডেল রয়েছে, বাল্ক লগ হয়েছে k বাল্ক-লগড পুনরুদ্ধারের মডেল সম্পর্কে আরও তথ্যের জন্য এই উল্লেখটি দেখুন )
এসকিউএল সার্ভারের জন্য মাইক্রোসফ্ট ওএল ডিবি সরবরাহকারী (0x80040E14) ডাটাবেস 'ডেটাবেস নাম' এর লেনদেন লগ পূর্ণ full লগের মধ্যে স্থানটি কেন পুনরায় ব্যবহার করা যাবে না তা জানতে, sys.databases- এ লগ_প্রযুক্তি_উইট_ডেস্ক কলামটি দেখুন
আপনি যে ত্রুটিটি পেয়েছেন (সম্ভবত সম্ভবত) তা হ'ল কারণ আপনি নিজের লেনদেন লগ ব্যাক আপ করেন নি। যখন এটি ব্যাক আপ করা হয় না, তখন এটি লেনদেনের লগ ফাইলটি শারীরিকভাবে বাড়তে থাকবে (প্রদত্ত অটোগ্রোথ সক্ষম এবং ম্যাক্সেসাইজ অনুমতি দেয়) কারণ এটি লেনদেন লগের কোনও "অংশ" পুনরায় ব্যবহার করতে পারে না (ভার্চুয়াল লগ ফাইলগুলি)। এটি কেবলমাত্র সেই ভিএলএফগুলিকে পুনঃব্যবহারের জন্য চিহ্নিত করতে পারে এবং যখন আপনি কোনও লেনদেন লগ ব্যাকআপ করেন (এবং কোনও সক্রিয় কোনও লেনদেন নয়, কিছু প্রতিরূপের দিক ইত্যাদি) তখন লেনদেনের লগের "মোড়ক-ঘাট" প্রকৃতির অনুমতি দেয়।
লগটি সঙ্কুচিত করতে এবং ডাটাবেসটিকে আবার অ্যাক্সেসযোগ্য করে তুলতে, আমি পুনরুদ্ধারের মডেলটি ফুল থেকে সিমপ্লেতে পরিবর্তন করেছি এবং লজিকাল ফাইল লগটি সঙ্কুচিত করেছি, নিম্নলিখিত কমান্ডের সাহায্যে
......
এটি সাহায্য করেছিল, তবে এখন আমার বুঝতে হবে এটি কেন সাহায্য করেছে, এই পরিস্থিতিটি কীভাবে শুরু হয়েছিল এবং ভবিষ্যতে কীভাবে এটি প্রতিরোধ করা যায়?
এটি আপনাকে সহায়তা করেছে কারণ আপনার ডাটাবেসটিকে সহজ পুনরুদ্ধারের মডেলটিতে সেট করে আপনি এসকিউএল সার্ভারকে বলেছিলেন যে আপনি আর পয়েন্ট-ইন-টাইম পুনরুদ্ধারের বিষয়ে যত্নবান নন, এবং ভার্চুয়াল লগ ফাইলগুলি আর সংরক্ষণের প্রয়োজন নেই এবং সক্রিয় হিসাবে চিহ্নিত করার প্রয়োজন রয়েছে তা নিশ্চিত করার প্রয়োজনীয়তা, এখন একটি চেকপয়েন্ট প্রক্রিয়া এই ভিএলএফগুলিকে নিষ্ক্রিয় হিসাবে চিহ্নিত করেছে।
এই এমএসডিএন রেফারেন্স থেকে নেওয়া অংশ / উদ্ধৃতি :
সরল পুনরুদ্ধারের মডেলের অধীনে, যদি না কোনও উপাদান লগের কাটাকাটি করতে বিলম্ব না করে, একটি স্বয়ংক্রিয় চেকপয়েন্ট লেনদেন লগের অব্যবহৃত অংশটি কেটে দেয়। বিপরীতে, পূর্ণ এবং বাল্ক-লগড পুনরুদ্ধার মডেলগুলির অধীনে, একবার লগ ব্যাকআপ চেইন প্রতিষ্ঠিত হয়ে গেলে, স্বয়ংক্রিয় চেকপয়েন্টগুলি লগের কাটা কাটা ঘটায় না।
তারপরে আপনি একটি দৈহিক ডাটাবেস ফাইল সঙ্কুচিত করেছেন এবং আপনার লেনদেনে লগতে ফাঁকা জায়গা থাকায় এটি এনটিএফএস ফাইলটি শারীরিকভাবে সঙ্কুচিত করতে সক্ষম হয়েছিল।
এতে কিছুটা সময় ব্যয় করার উপযুক্ত পাঠ্য:
- পুনরুদ্ধার মডেল
- লেনদেন লগ পরিচালনা (গাইল শ)
- লগ কাটাটি বিলম্ব করতে পারে এমন উপাদানগুলি
আপনার সম্পাদনার পরে সম্পাদনা করুন :
নতুন পুনরুদ্ধার মডেল এবং ডাটাবেসশ্রিংক কি এই স্ক্রিপ্টটির সাথে দ্বন্দ্ব হতে চলেছে?
এই BACKUP DATABASE
আদেশটি পুনরুদ্ধারের মডেলগুলির সাথে কাজ করবে। রুটিন ডাটাবেস সঙ্কুচিত ... এটি করবেন না !!!! গুরুতরভাবে, আপনার ডাটাবেসটিকে সে অনুযায়ী আকার দিন এবং আপনি যদি পুরো পুনরুদ্ধারের মডেলটি ব্যবহার করেন তবে নিশ্চিত করুন যে আপনি কেবল নিয়মিত এবং ঘন ঘন লেনদেন লগ ফাইলগুলি করছেন, কেবলমাত্র লেনদেনের লগের আকারটি উপকারে রাখার জন্য নয়, পুনরুদ্ধারের পয়েন্ট অবজেক্টগুলিও পূরণ করতে পারেন।
আমরা ডাটাবেসগুলির অন্য কোনও ধরণের ব্যাকআপ করছি না, এবং তাই লেনদেনের লগগুলি না করে আমাদের করা উচিত?
যদি আপনার ডাটাবেস পুরো পুনরুদ্ধার মডেলটি ব্যবহার করে, তবে হ্যাঁ আপনার উচিত লেনদেনের লগ ব্যাকআপগুলি করা। যদি আপনার ডাটাবেস সাধারণ পুনরুদ্ধারে থাকে তবে আপনি শারীরিকভাবে কোনও লেনদেন লগ ব্যাকআপ করতে পারবেন না।
কোন পুনরুদ্ধারের মডেলটি ব্যবহার করবেন (সাধারণ বনাম সম্পূর্ণ) আমরা আপনার জন্য সেই সিদ্ধান্ত নিতে পারি না। কেবলমাত্র আপনি, আপনার ব্যবসায়িক দল এবং আপনার এসএলএগুলি পারে।