اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
یک دقیقه
در مورد روشهای کاهش حجم لاگ فایلهای SQL Server در این مطلب بحث شد.
اما یکی از دیتابیسهای قدیمی shrink نمیشد و پیغام خطای زیر را صادر میکرد:
Cannot shrink log file 2 because of minimum log space required.
یکی از علتهایی که اگر مطابق روش ذکر شده در مقاله یاده شده رفتار شود، سبب کاهش حجم لاگ فایل یک دیتابیس نمیشود، وجود تراکنشهای کامل نشده است. جهت مشاهدهی وضعیت تراکنشهای یک دیتابیس میتوان دستور زیر را صادر کرد:
DBCC OPENTRAN
Replicated Transaction Information:
Oldest distributed LSN : (0:0:0)
Oldest non-distributed LSN : (5291:25:1)
وجود سطر مربوط به Oldest non-distributed LSN به این معنا است که هنوز یک replication نا تمام بر روی این دیتابیس موجود است. البته چون این دیتابیس از یک سرور دیگر به اینجا منتقل شده بود و هیچ نوع replication ایی هم در این سرور بر روی آن تنظیم نشده بود؛ بنابراین ابتدا این replication حذف شد:
exec sp_removedbreplication 'dbName', 'both';
سپس مجددا دستور زیر جهت مشاهدهی وضعیت تراکنشهای ناتمام صادر شد:
DBCC OPENTRAN
که اینبار دیگر هیچ خروجی نداشت.
اکنون با استفاده از روش ذکر شده، لاگ فایل 70 گیگابایتی این دیتابیس به سادگی به چند مگابایت shrink شد.