سلام.

امروز میخوام توضیح مختصری در مورد Recovery Model دیتابیس بدم و اینکه چطوری از افزایش حجم فایل LOG جلوگیری کنیم.

ما در دیتابیس سه نوع Recovery Model داریم. Full-Simple-Bulk Logged .


مدل Full :

در این مدل تمامی عملیات کاربر در فایل Log ذخیره خواهد شد و این عملیات شامل تغییراتی هست که بر روی اطلاعات در داخل دیتابیس انجام خواهد شد.

این روش زمانی کاربرد دارد که حساسیت اطلاعات بالا بوده و میخواهیم میزان از بین رفتن اطلاعات رو به حداقل زمان ممکن کاهش بدیم. در این روش فایل Log افزایش پیدا خواهد کرد و برای اینکه حجم انرا کم کنیم باید از دیتابیس Log Backup تهیه کرده و سپس عملیات Shrink رو روی دیتابیس انجام بدیم. اگر بدون تهیه Log Backup دیتابیس رو Shrink کنیم اتفاق خاصی رخ نخواهد داد.


مدل Simple :

در این مدل اطلاعات در فایل Log برای ما اهمیتی ندارند و به محض Commit شدن در فایل MDF بدون تهیه Backup LOG میتوان عملیات Shrink رو انجام داد. این مدل زمانی کاربرد دارد که میزان تغییرات روی اطلاعات در طول روز کم هست یا اطلاعات دارای اهمیت بالایی نیستند که بخواهیم از اطلاعات در هر دقیقه یک Log backup تهیه کنیم. با انتخاب این گزینه و انتخاب Auto Shrink در قسمت options در منوی Database Properties خودبه خود عملیات Shrink روی دیتابیس انجام خواهد شد و فایل Log  همیشه در یک سایز اولیه باقی می ماند.

مدل Bulk Logged:

در این مدل عملیاتی که دستور Bulk copy یا Select insert روی دیتابیس اعمال می شوند هیچ Log ذخیره نمی شود که سرعت عملیات این دستورات افزایش پیدا کند و حجم فایل log به صورت تصاعدی بالا نرود. در این روش نیز مانند مدل Full باید اول از دیتابیس یک Log Backup گرفته تا بتوانیم دیتابیس رو Shrink کنیم.


در پست آینده نحوه Shrink کردن دیتابیس هم از طریق Management Studio هم از طریق کدنویسی رو توضیح خواهم داد.