PDA

View Full Version : سوال: خالی کردن فایل ldf



Mrs.Net
یک شنبه 05 خرداد 1387, 09:57 صبح
تعداد زیادی رکورد به بانکم اضافه کردم که الان حجم mydatabase_log.ldf حدود 4برابر حجم فایل mdf شده.
چجوری میتونم این فایل ldf خالی کنم؟ (بنظرم فقط یک لاگ فایل باشه)

anubis_ir
یک شنبه 05 خرداد 1387, 10:00 صبح
ديتابيس رو shrink كن. اگر حجم لاگ فايل كم نشد از دستورات زير استفاده كن.

DECLARE @dbLogName nvarchar(500) ;
Use dbName ;
select @dbLogName = rtrim(ltrim(name)) from sysfiles WHERE FILEID=2;
ALTER DATABASE dbName SET SINGLE_USER ;
DBCC SHRINKFILE(@dbLogName , 2) ;
BACKUP LOG dbName WITH TRUNCATE_ONLY ;
DBCC SHRINKFILE(@dbLogName , 2) ;
ALTER DATABASE dbName SET MULTI_USER ;

بجاي dbName نام ديتابيس خودتون رو قرار دهيد.

Mrs.Net
دوشنبه 06 خرداد 1387, 08:38 صبح
ممنون انجام دادم حجمش شد 2 مگابایت
هیچ محدودیتی که بوجود نمیاره؟ جز اینکه رکوردهارو حذف کرده درسته؟

حمیدرضاصادقیان
دوشنبه 06 خرداد 1387, 09:00 صبح
نه محدودیتی نداره.این حجم لاگ بسته به تعداد تراکنشهایی که شما انجام میدید داره.هرچی تراکنشهای شما بیشتر باشه حجم لاگ بیشتر میشه. اگر دیتابیس شما براتون خیلی مهمه میتونی recovery model رو روی full تنظیم کنی و هر روز از لاگ backup بگیری که اگر دیتابیست به مشکل برخورد بتونی تا ثانیه های اخر دیتا رو برگردونی.ولی اگر زیاد برات مهم نیست مثلا با بازیابی اخرین backup تمامی تغییراتت برمیگرده میتونی recovery model رو روی simple تنظیم کنی و گزینه auto shrink رو تیک بزنی که خود sql اینکارو برای شما انجام بده.

mostafa612003
شنبه 02 آذر 1387, 14:21 عصر
سلام
موقعی که کد بالا را در قسمت query بانکم نوشتم این پیغامو داد
هیچکس به بانک من دسترسی ندارد

Cannot shrink log file 2 (Shohada_Log) because all logical log files are in use.