توضیحاتی در مورد Recovery Model در SQL Server
دوشنبه, ۹ اسفند ۱۳۹۵، ۱۰:۴۴ ق.ظ
خیلیها وقتی می خواهند از شر حجم زیاد log فایلها خلاص شوند تنظیمات پایگاه داده اشان را روی simple می گذارند.
این روش خوبی است. البته تا وقتی که نیاز به نسخه های پشتیبان پیدا می کنید. آن موقع تازه به این فکر می افتید که فرق Simple و Fulll چه بوده است.
بله. داستان ما هم شبیه به همین بود.
SQLSrv از log فایلها برای ثبت همه transactionهای وارد شده قبل از اعمال آنها استفاده می کند. logفایلها به صورت ترتیبی (Sequential) پر می شوند. یعنی از اول فایل شروع می کند به نوشتن اطلاعات تا برسد به انتهای آن. و باز از اول فایل شروع می شود (این موضوع اما و اگرهایی دارد که اگر علاقه مند هستید روی اینترنت براحتی پیدا می کنید)
اگر شما یک full bakcup داشته باشید و log فایلهایتان را هم نگه دارید واضح است که می توانید پایگاه داده را به هر لحظه بعد از full backup برگردانید. چون می توانید log ها را تا هر لحظه دلخواه اعمال کنید.
اگر شما از Simple Recovery Mode استفاده کنید این اطلاعات overwrite می شوند. و شما در صورت بروز مشکل فقط می توانید تا آخرین full backup برگردید. اما در Full Recovery Mode اطلاعات داخل log فایلها مهم و حیاتی تلقی می شوند و به هیچ وجه از دست نمی روند. با کمی دقت متوجه می شوید که این به معنی بزرگ شدن log فایلها با هر transaction است.
حالا با مشکل اندازه log ها چه باید کرد؟
همانطور که از خود داده backup می گیرید (Full or Deferential) می توانید از log هم نسخه پشتیبان تهیه کنید (transaction log) و بعد از تهیه پشتیبان از log ها، فضای داخل فایل دوباره قابل استفاده است و overwrite می شود. دقت کنید که فایل کوچک نمی شود (مگر آنکه آن را shrink کنید) ولی transactionهای جدید در همین فایل بدون افزایش حجم نوشته می شوند. یعنی اگر حجم transactionهای شما بین log backup ها تقریبا یکسان باشد اندازه logفایلها افزایش نخواهد یافت.
دیتابیسهای سیستمی نیازی به full بودن ندارند و همان Simple Recovery Mode برایشان توصیه می شود (این مقاله را ببینید)
موقع Restore کردن می توانید یک full و چندین log backup را با هم انتخاب کنید. حالا management studio به شما این انتخاب را می دهد که به هر نقطه از Timeline بعد از full backup که مایل هستید برگردید.
Restore a SQL Server Database to a Point in Time (Full Recovery Model)
۹۵/۱۲/۰۹