امروز در این مقاله قصد داریم دربارهی مطلبی که شاید هنگام گرفتن بکاپ از دیتابیس در sql server با آن مواجه شوید را بپردازیم.
همانطور که میدانید در هنگام گرفتن بکاپ با دستور with compression میتوانید فرایند بکاپ را به صورت بهینه انجام دهید، که با اعمال این دستور بسته به نوع دیتا، بکاپ شما به صورت فشرده گرفته میشود.اما آیا واقعا هنگام گرفتن بکاپ با این دستور سایز فایل نسبت به حالت عادی و بدون اعمال فشرده کردن کمتر میشود؟
در هنگام استفاده از دستور with compression برای گرفتن بکاپ، sql server با استفاده از الگوریتم pre-allocation تخمینی از میزان درصد سایز فایل نهایی بکاپ جهت ایجاد فایل و گرفتن فضای دیسک در os انجام میدهد.
سایز فایل نهایی بکاپ تا اتمام فرایند بکاپ گیری نامشخص است و در صورتی که این تخمین به اشتباه زیادتر گرفته شده باشد سایز نهایی پس از اتمام عملیات بکاپ کمتر میشود و فضای دیسک به os برگردانده میشود و بلعکس آن در صورتی که این میزان فضا کمتر پیشبینی شده باشد، فضا در حین عملیات اضافه میگردد.
در مواردی که تخصیص فضای دیسک بکاپ در سرور مقدور نباشد و شما نیاز دارید که سایز فایل از زمان شروع بکاپ گیری تا اتمام فرایند، فضای اضافهای را اشغال نکند میتوانید با فعال کردن TRACE FLAG 3042 این الگوریتم را کنار بگذارید که در این صورت فایل بکاپ فقط به میزانی که نیاز باشد رشد میکند.
توجه داشته باشید که با کنار گذاشتن این الگوریتم فراید بکاپ گیری ممکن است کند انجام گیرد و مدت زمان انجام بکاپ را طولانیتر کند.