مشکل با Filestream در SQL Server
سلام دوستان
امشب تا دیر وقت توی یکی از سازمان ها درگیر Filestream و افزایش ناگهانی حجم FileGroup مربوط به آن شده بودم صورت مسئاله به این حالت بود
1- بانک اطلاعاتی دارای یک جدول است که از فایل استریم در SQL Server استفاده کرده و حجم دیتا های BLOB آن تا اینجا در حدود 2.5GB می باشد.
2- سناریوی HA با استفاده از Always ON پیاده سازی شده است
3- بانک اطلاعاتی دارای Replication می باشد.
4- مشکل از اینجا شروع می شود هر موقع کلاستر ایندکس جدولی که از تکنولوژی Filestream استفاده می کند را Rebuild می کنیم .از دیتاهای موجود در NTSF کپی تهیه شده و ... تهیه کپی باعث افزایش حجم فولدر NTFSی شده و همچنین حجم Backupها به شدت افزایش پیدا می کند.
برای حل این مشکل به چه چیزهایی شک کردم
1- باز بودن یک تراکنش در بانک اطلاعاتی
2- باز بودن Internal Transaction مربوط به Replication
3- عدم تنظیم روال بکاپ در Always ON
4- خود Always ON
مورد 1 الی 3 باعث ممکن است باعث شود که شما Active Log داشته باشی و عملا دیتاهایی که در Log تکلیفشان مشخص نشده (مثال فایل های کپی شده و... فایل استریم) مجدد در بکاپ ذخیره شود.
جالب اینجاست که حتی با فورس کردن فایل استریم + تهیه لاگ بکاپ + CheckPoint برای پاک کردن دیتاهای بلا استفاده باز هم این مشکل وجود دارد.
احتمالا مجبور بشم تنظیمات Always-ON را غیر فعال کنم و مجددا عملیات فورس GC را با استفاده از SP زیر انجام دهم
sp_filestream_force_garbage_collection