در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

پاک کردن یا کم کردن حجم فایل LDF یا لاگ فایل پایگاه داده SQL

حنماً با بانک SQL کار کردید وقتی یک بانک ایجاد میکنید یک فایل اصلی که کلیه اطلاعات داخل فایلی با پسوند MDF که مخفف master database file هست ذخیره میشه در همین هنگام فایل دیگری با پسوند LDF که مخفف log database file هست ایجاد می شه و وظیفه این فایل نگهداری LOG ها و رویداد ها و ثبت تراکنش ها و اطلاعات جانبی در مورد پایگاه داده هست. LOG فایل ها گاهی اوقات بسیار کار آمد هستند ولی گاهی پیش میآید که حجم این فایل ها بسیار شده و به چندین GIG میرسد که در این صورت نگهداری این فایل های حجیم کار ساده ای نیست . در این مطلب یاد میگیریم که چطور میتونیم این LOG فایل ها رو از بین ببریم.

توسط دستور زیر روی پایگاه داده SQL Server به اطلاعات جالبی میتوان دست پیدا کرد مانند تصویر زیر:

exec sp_helpfile

پاک کردن LDF در پایگاه داده SQL

تصویر بالا خروجی دستور فوق هست که برخی از ستون های این خروجی به شرح زیر است

  • name : نام پایگاه SQL همچنین LOG File رو نشون میده در اینجا نام پایگاهمون itpro هست و فایل لاگ نگهداری می شود.
  • FileName : در این ستون آدرس محل نگهداری فایل های پایگاه SQL نگهداری می شود.
  • size : در این ستون حجم فایل های MDF و LDF پایگاه نمایش داده می شود.

با اجرای دستورات زیر روی پایگاه SQl Server می توانیم حجم فایل LOG و فایل DATA را به حداقل مقدار ممکن برسانیم.

BACKUP LOG <DatabaseName> WITH TRUNCATE_ONLY
GO
DBCC SHRINKFILE (<LogicalLogfileName>, 1)
GO
DBCC SHRINKFILE (<LogicalDatafileName, 1)

به جای DatabaseName باید نام پایگاه وارد شود و همچنین LogicalLogfileName باید برابر با نام منطقی پایگاه می باشد برای مثال ما باید کد زیر درج گردد.

 exec sp_helpfile

BACKUP LOG itpro WITH TRUNCATE_ONLY
GO
DBCC SHRINKFILE (itpro_log, 1)
GO
DBCC SHRINKFILE (itpro , 1)

exec sp_helpfile

یادتان باشد که پس از استفاده از دستورات فوق زنجیره فایل های LOG پایگاه SQL پراکنده و گاهی هم از بین میرود یا از دسترس خارج میشود ، پس بهتر است قبل از این کار از لاگ های مهم خود Backup تهیه کنید .


برای حذف کردن فایل Data یا فایل log در sql از کد زیر استفاده کنید

  1. قدم اول به بانک اطلاعات مورد نظر جهت پاک کردن متصل شوید.
  2. New Query را جهت درج کوءری جدید بزنید.
  3. کد زیر را نسبت به پایگاه داده خود تغییر داده و در نهایت اجرا یا execute کنید .
  4. USE master;
    GO
    ALTER DATABASE sql2014
    REMOVE FILE test;
    GO
    

فایل test از بانک sql2014 پاک میشود.

اطلاعات بیشتر: msdn.microsoft.com

نویسنده:فرهاد خانلری

منبع:انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر نام نویسنده و منبع دارای اشکال اخلاقی میباشد

#حذف_فایل_دیتا_یا_لاگ_در_sql #پاک_کردن_log_فایل_در_sql #کم_کردن_حجم_لاگ_فایل_بان_sql_server #حجم_log_فایل_بانک_sql #کاهش_حجم_فایل_ldf_در_sql #کار_با_دستور_exec_sp_helpfile
2 نظر
romeo_montegio

با سلام. نکاتی را یادآور می شوم :

1- MDF مخفف Master Data File می باشد.

2- دستور BACKUP LOG <DatabaseName> WITH TRUNCATE_ONLY در صورتی اجرا میشود که قبلا حداقل یکبار از دیتابیس FULL Backup تهیه کرده باشید.

3- در صورتیکه از تکنولوژی Log backup استفاده نمی کنید و میزان تراکنشهای بانک شما آنقدر نیست که برای برگشت به ساعت و تاریخ خاصی در گذشته نیاز به Log Backup داشته باشید (مثلا هر روز تعداد محدودی سند در سیستم حسابداری ثبت می کنید و هرروز فول بکاپ می گیرید) می توانید Recovey Model بانک را به SIMPLE تغییر دهید تا فایل Log نامحدود بزرگ نشود.

pardazandeh

به این صورت هم میتوان دستور رو نوشت که کاربردی تر و مفیدتر خواهد بود


 -- Truncate the log by changing the database recovery model to SIMPLE.

ALTER DATABASE DatabaseName
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (DatabaseName_log, 2);
GO
-- Reset the database recovery model.
ALTER DATABASE DatabaseName
SET RECOVERY FULL;
GO

هرجا کلمه DatabaseName رو دیدین با اسم دیتابیس خودتون عوضش کنین

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....